设为首页 加入收藏

TOP

java一款支持批量上传的代码示例(二)
2014-11-24 12:02:30 来源: 作者: 【 】 浏览:215
Tags:java 支持 批量 上传 代码 示例
atusBean(request);
satusBean.setStatus(errMsg);
saveStatusBean(request, satusBean);
}
/**
* 初始化文件上传状态Bean
*/
private FileUploadStatus initStatusBean(HttpServletRequest
request) {
FileUploadStatus satusBean = new FileUploadStatus();
satusBean.setStatus("正在准备处理");
satusBean.setUploadTotalSize(request.getContentLength());
satusBean.setProcessStartTime(System.currentTimeMillis());
satusBean.setBaseDir(request.getContextPath() + UPLOAD_DIR);
return satusBean;
}
/**
* 处理文件上传
*/
private void processFileUpload(HttpServletRequest request,
HttpServletResponse response) throws
ServletException, IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
//设置内存缓冲区,超过后写入临时文件
factory.setSizeThreshold(10240000);
//设置临时文件存储位置
factory.setRepository(new File(request.getRealPath("/upload/temp")));
ServletFileUpload upload = new ServletFileUpload(factory);
//设置单个文件的最大上传值
upload.setFileSizeMax(5*102400000);
//设置整个request的最大值
upload.setSizeMax(10*102400000);
upload.setProgressListener(new FileUploadListener(request));
//保存初始化后的FileUploadStatus Bean
saveStatusBean(request, initStatusBean(request));
FileUploadStatus satusBean =
getStatusBean(request);
String forwardURL = "";
int flag=1;
try {
List items = upload.parseRequest(request);
//获得返回url
for (int i = 0; i < items.size(); i++) {
FileItem item = (FileItem) items.get(i);
if (item.isFormField()) {
forwardURL = item.getString();
break;
}
}
//处理文件上传
for (int i = 0; i < items.size(); i++) {
FileItem item = (FileItem) items.get(i);
//取消上传
if (getStatusBean(request).getCancel()) {
deleteUploadedFile(request);
break;
}
//保存文件
else if (!item.isFormField() && item.getName().length() > 0) {
String fileName = takeOutFileName(item.getName());
File uploadedFile = new File(request.getRealPath(UPLOAD_DIR) +
File.separator + fileName);
item.write(uploadedFile);
flag++;
//更新上传文件列表
satusBean.getUploadFileUrlList().add(fileName);
saveStatusBean(request, satusBean);
//Thread.sleep(500);
}
}
} catch (FileUploadException e) {
uploadExceptionHandle(request, "上传文件时发生错误:" + e.getMessage());
} catch (Exception e) {
uploadExceptionHandle(request, "保存上传文件时发生错误:" + e.getMessage());
}
if (forwardURL.length() == 0) {
forwardURL = DEFAULT_UPLOAD_FAILURE_URL;
}
request.setAttribute("msg", "文件上传成功!");
request.getRequestDispatcher("index2.jsp").forward(request, response);
}
/**
* 回应上传状态查询
*/
private void responseSt
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/10/10
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇求一个数的阶乘 下一篇使用JAXB处理JavaBean和XML的转换

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: