📄 upload.java
字号:
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 + -