private String PIC_UP_MODEL_PATH="uploads/";
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String modelName = MODEL_NAME;
String fileRealPath = "";
String dir = PIC_UP_MODEL_PATH+modelName;
// + StrFormat.getServerTime("yyyy/MM/dd");//按日期生成存放目录
String savePath = request.getSession().getServletContext().getRealPath(dir);
File f1 = new File(savePath);
if (!f1.exists()) {
f1.mkdirs();
}
f1 = null;
DiskFileItemFactory fac = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setHeaderEncoding("UTF-8");
List<?> fileList = null;
try {
fileList = upload.parseRequest(request);
} catch (FileUploadException ex) {
ex.printStackTrace();
return null;
}
if (fileList == null) {
return null;
}
Iterator<?> it = fileList.iterator();
String name = "";
String extName = "";
while (it.hasNext()) {
FileItem item = (FileItem)it.next();
if (!item.isFormField()) {
name = item.getName();
if (name == null || name.trim().equals("")) {
continue;
}
//文件后缀名如:.doc
if (name.lastIndexOf(".") >= 0) {
extName = name.substring(name.lastIndexOf("."));
}
String fileName = name.replaceAll("\\s", "");
fileName = fileName.substring(0,fileName.lastIndexOf("."));
File f = new File(savePath + "/" + fileName + extName);
while (f.exists()) {//如果文件存在,在文件名后加上随机数做区分
int rand = (int) Math.round(Math.random() * 100);
fileName += "_" + new Date().getTime() + rand;
f = new File(savePath + "\\" + fileName + extName);
}
f = null;
fileRealPath = savePath + "\\" + fileName + extName;
File saveFile = new File(fileRealPath);
try {
item.write(saveFile);
URLEncoder.encode(fileRealPath, "UTF-8");
response.getOutputStream().println(URLEncoder.encode(fileRealPath, "UTF-8"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
return null;
}