⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 upload.java

📁 本文论述了一个前台笔记本销售系统的开发过程
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.set.utils;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException;

import com.set.appframe.data.GenericValueObject;

/**
 * 
 * <p>
 * Title:file upload use apache common-fileupload
 * </p>
 * <p>
 * Description: only a file each time
 * </p>
 * <p>
 * Copyright: Copyright (c) 2004
 * </p>
 * <p>
 * Company:
 * </p>
 * 
 * @author ojw
 * @version 1.0
 */
public class Upload {

	private String pathName;
	private int fileNum;

	public void setPathName(String pathName) {
		this.pathName = pathName;
	}

	public String getPathName() {
		return pathName;
	}

	public int getFileNum() {
		return this.fileNum;
	}

	public Upload() {
		this.fileNum = 0;
	}

	public HashMap upload(javax.servlet.http.HttpServletRequest request,
			javax.servlet.http.HttpServletResponse response) {
		StringBuffer errorMsg = new StringBuffer(); // 上传过程中的错误信息
		HashMap hm = new HashMap();
		Date date = new Date();
		int maxSize = 1000; // 以k为单位计算,默认为1M
		String maxSizeStr = "1000";

		SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSSZ");
		String p = sd.format(date);
		Date fileDate = new Date();
		String filePix = sdf.format(fileDate);
		filePix = filePix.replace(' ', '_');
		filePix = filePix.replace('+', '_');

		String realpath = request.getRealPath("");

		String uploadPath = realpath + File.separator + "bizdesk"
				+ File.separator + "upload_image";

		File uploadFile = new File(uploadPath);
		if (!uploadFile.exists()) {
			uploadFile.mkdir();
		}

		String itemList = "";
		String action = "";

		FileItem fi = null;

		GenericValueObject gvo = new GenericValueObject();

		try {

			boolean isMultipart = FileUpload.isMultipartContent(request);
			if (!isMultipart) {
				System.out.println("no multipart request !");

			}

			DiskFileUpload fu = new DiskFileUpload();

			// 最大上传文件大小
			fu.setSizeMax(1000 * 1000L);
			fu.setSizeThreshold(10240);
			// fu.setRepositoryPath(tempPath);

			List items = null;
			try {
				items = fu.parseRequest(request);
			} catch (SizeLimitExceededException ex) {
			}

			Iterator iter = items.iterator();

			// String temp = mapping.getPath();
			while (iter.hasNext()) { // 获得input 名称--值

				FileItem item = (FileItem) iter.next();
				if (item.isFormField()) { // 如果是表单域,则分别得到(属性---值)

					String name = "";
					name = (item.getFieldName().trim()); // 得到属性

					String value = "";
					value = (item.getString().trim()); // //得到值
					if (!((value == null) || (value.equals("")))) {
						hm.put(name, value);

					}

					if (name.equals("ActionID")) { // 得到ActionID的值,付给action
						action = value;
					}

				} else {
					fi = item; // 如果不是表单域,则把期直接付给FileItem;
				}
			}

			maxSizeStr = (String) hm.get("MAXSIZE");
			try {
				maxSize = Integer.parseInt(maxSizeStr);
			} catch (Exception ex) {
				maxSize = 1000;
			}

			if (fi.getSize() > maxSize * 1000L) {
				errorMsg.append("上传的文件的大小超过允许的范围!(" + maxSize + "k)");
			} else {
				String fileName = fi.getName(); // 得到上传的文件名(全名)
				if (!fileName.equals("")) { // 文件名不为空

					fileName = (fileName.substring(fileName
							.lastIndexOf(java.io.File.separator) + 1));
					String fileEnd = fileName.substring(fileName
							.lastIndexOf("."));

					File uploadedFile = new File(uploadPath + File.separator
							+ filePix + fileEnd);
					String TitleImg = filePix + fileEnd;
					hm.put("TitleImg", TitleImg);
					fi.write(uploadedFile);

				}
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		if (errorMsg.length() > 0) {
			hm.put("ERRORMSG", errorMsg.toString());
		}
		return hm;

	}

	/**
	 * 支持多个文件的读取,文件名以FileURL1,..FileURLn形式存在
	 * 
	 * @param request
	 *            HttpServletRequest
	 * @param response
	 *            HttpServletResponse
	 * @return HashMap
	 */

	public HashMap upload2(javax.servlet.http.HttpServletRequest request,
			javax.servlet.http.HttpServletResponse response) {
		HashMap hm = new HashMap();

		String itemList = "";
		String action = "";

		int maxSize = 1000; // 以k为单位计算,默认为1M
		String maxSizeStr = "1000";

		FileItem fi = null;

		GenericValueObject gvo = new GenericValueObject();
		try {
			boolean isMultipart = FileUpload.isMultipartContent(request);
			if (!isMultipart) {
				System.out.println("no multipart request !");
			}

			maxSizeStr = request.getParameter("MAXSIZE");
			try {
				maxSize = Integer.parseInt(maxSizeStr);
			} catch (Exception ex) {
				maxSize = 1000;
			}
			DiskFileUpload fu = new DiskFileUpload();
			// 最大上传文件大小
			fu.setSizeMax(maxSize * 1000L);
			fu.setSizeThreshold(10240);

			// fu.setRepositoryPath(tempPath);
			List items = fu.parseRequest(request);
			Iterator iter = items.iterator();

			while (iter.hasNext()) { // 获得input 名称--值
				FileItem item = (FileItem) iter.next();
				if (item.isFormField()) { // 如果是表单域,则分别得到(属性---值)
					String name = item.getFieldName().trim(); // 得到属性
					String value = item.getString().trim(); // //得到值
					if (!((value == null) || (value.equals("")))) {
						hm.put(name, value);
					}
					if (name.equals("ActionID")) { // 得到ActionID的值,付给action
						action = value;
					}
				} else {
					fi = item; // 如果不是表单域,则把期直接付给FileItem;
					String fileName = fi.getName(); // 得到上传的文件名(全名)
					if (!fileName.equals("")) { // 文件名不为空
						this.fileNum++;

						fileName = (fileName.substring(fileName
								.lastIndexOf(java.io.File.separator) + 1));
						String fileEnd = "";
						if (fileName.lastIndexOf(".") != -1)
							fileEnd = fileName.substring(fileName
									.lastIndexOf("."));

						Date date = new Date();
						SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
						SimpleDateFormat sdf = new SimpleDateFormat(
								"yyyyMMddHHmmssSSSZ");
						String p = sd.format(date);
						Date fileDate = new Date();
						String filePix = sdf.format(fileDate);
						filePix = filePix.replace(' ', '_');
						filePix = filePix.replace('+', '_');

						String realpath = request.getRealPath("");
						// modify by lizhenlian把上传的文件放在固定目录,数据库中只保存文件名
						// String uploadPath = realpath + File.separator +
						// "bizdesk" + File.separator + "upload_image";
						String uploadPath = realpath + File.separator
								+ "uploadfile";

						File uploadFile = new File(uploadPath);
						if (!uploadFile.exists()) {
							uploadFile.mkdir();
						}

						File uploadedFile = new File(uploadPath
								+ File.separator + filePix + fileEnd);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -