@RequestMapping("cosUpload")
@ResponseBody
public String cosUpload(HttpServletRequest request){
String destDir = request.getServletContext().getRealPath("/") + Constant.FILE_PATH;
try {
FileUtils.forceMkdir(new File(destDir));
// enctype="multipart/form-data"的form不能直接从request获取参数
// String recipient = request.getParameter("recipient");
// new MultipartRequest时已经把文件存在destDir目录下
MultipartRequest multipartRequest = new MultipartRequest(request, destDir, 1024*1024, "UTF-8");
// 转换后可以从multipartRequest获取参数
String recipient = multipartRequest.getParameter("recipient");
String sender = multipartRequest.getParameter("sender");
String password = multipartRequest.getParameter("password");
String subject = multipartRequest.getParameter("subject");
String content = multipartRequest.getParameter("content");
String host = multipartRequest.getParameter("host");
@SuppressWarnings("unchecked")
Enumeration<String> fileNames = multipartRequest.getFileNames();
List<File> fileList = new ArrayList<File>();
while (fileNames.hasMoreElements()) {
String fileName = fileNames.nextElement();
File file = multipartRequest.getFile(fileName);
fileList.add(file);
}
File[] files = new File[fileList.size()];
fileList.toArray(files);
MailUtils.send(host, sender, password, recipient, subject, content, files);
} catch (IOException e1) {
e1.printStackTrace();
}
return "success";
}
使用cos上传,很显示获取文件外的普通参数比commons.fileupload灵活多了。而springmvc中的CommonsMultipartResolver需要添加配置,给人移植不灵活的感觉。用起来的话cos跟CommonsMultipartResolver一样。
oreilly的cos上传使用
最新推荐文章于 2017-06-23 09:35:43 发布