如何使用Springmvc上次文件?
- 首先必须在form表单加上enctype="multipart/form-data"
enctype="multipart/form-data
@RequestMapping(value = "appinfoaddsave", method = RequestMethod.POST)
public String appinfoaddsave(AppInfo appInfo, HttpSession session, HttpServletRequest request,
@RequestParam(value = "a_logoPicPath", required = false) MultipartFile attach) {
String logoPicPath = null;
String logoLocPath = null;
if (!attach.isEmpty()) {
String path = request.getSession().getServletContext()
.getRealPath("statics" + java.io.File.separator + "uploadfiles");
// 原文件夹名
String oldFileName = attach.getOriginalFilename();
// 原文件后缀
String prefix = FilenameUtils.getExtension(oldFileName);
int filesize = 500000;
if (attach.getSize() > filesize) {// 上传文件不能超过50k;
request.setAttribute("fileUploadError", Constants.FILEUPLOAD_ERROR_4);
return "developer/appinfoadd";
} else if (prefix.equalsIgnoreCase("jpg") || prefix.equalsIgnoreCase("png")
|| prefix.equalsIgnoreCase("jepg") || prefix.equalsIgnoreCase("pneg")) {// 上传图片格式
String fileName = appInfo.getAPKName() + ".jpg";// 上传的图片命名:apk名称+.apk
File targetFile = new File(path, fileName);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
try {
attach.transferTo(targetFile);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
request.setAttribute("fileUploadError", Constants.FILEUPLOAD_ERROR_2);
return "developer/appinfoadd";
}
logoPicPath = request.getContextPath() + "/statics/uploadfiles/" + fileName;
logoLocPath = path + File.separator + fileName;
} else {
request.setAttribute("fileUploadError", Constants.FILEUPLOAD_ERROR_3);
return "developer/appinfoadd";
}
}
appInfo.setCreatedBy(((DevUser) session.getAttribute(Constants.DEV_USER_SESSION)).getId());
appInfo.setCreationDate(new Date());
appInfo.setLogoLocPath(logoLocPath);
appInfo.setLogoPicPath(logoPicPath);
appInfo.setDevId(((DevUser) session.getAttribute(Constants.DEV_USER_SESSION)).getId());
appInfo.setStatus(1);
try {
if (appinfoService.add(appInfo)) {
return "redirect:/dev/flaot/getlist.do";
}
} catch (Exception e) {
e.printStackTrace();
}
return "developer/appinfoadd";
}
把文件id、 MultipartFile attach入参,在判断其参数是否为空,不为空的话,把文件夹的路径赋值给path、后面再获取原文件夹名、原文件后缀,定义变量,判断文件大小,超过定义的大小,给出相应的提示,还有判断文件的后缀名。