81,095
社区成员
发帖
与我相关
我的任务
分享
String userCode = ((UserContext) request.getSession().getAttribute("userContext")).getUsercode();
result = new HashMap<String, Object>();
// 创建一个通用的多部分解析器
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession()
.getServletContext());
int pre = 0;
// 判断 request 是否有文件上传,即多部分请求
if (multipartResolver.isMultipart(request)) {
// 转换成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
// 取得request中的所有文件名
for (Iterator<String> iterator = multiRequest.getFileNames();iterator.hasNext();) {
// 记录上传过程起始时的时间,用来计算上传时间
pre = (int) System.currentTimeMillis();
// 取得上传文件
MultipartFile multipartFile = multiRequest.getFile(iterator.next());
if (multipartFile != null) {
// 取得当前上传文件的文件名称
String excelPath = multipartFile.getOriginalFilename();
// 如果名称不为“”,说明该文件存在,否则说明该文件不存在
if (excelPath.trim() != "") {
try {
//定义缓冲路径
String fileName = PubFun.getCurrentYMDHMSS() + multipartFile.getOriginalFilename();
String path = excService.getExcelPath() + fileName;
File localFile = new File(path);
multipartFile.transferTo(localFile);
//解析
result = tAccService.resolveExcel(localFile, userCode);
localFile.delete();
} catch (Exception e) {
result.put("error", "上传至服务器时出现异常!");
e.printStackTrace();
}
}
}
}
}
int finaltime = (int) System.currentTimeMillis();
try {
if("error".equals(result.get("result"))){
response.getWriter().println("<script type='text/javascript'> alert('" + result.get("error") + "') </script>");
} else {
result.put("success", "上传成功!所用时间为:" + PubFun.castString((finaltime - pre)/10));
response.getWriter().println("<script type='text/javascript'> alert('上传成功!所用时间为:" + PubFun.castString((finaltime - pre)/1000) + "s.'); window.location.href='GoToABAllot.action'; </script>");
}
} catch (Exception e) {
e.printStackTrace();
}
我用的是SpringMVC,表单要求必须是enctype="multipart/form-data",普通文件提交,lib里面有common-io和fileupload包