@RequestMapping("/member/doc_upload.jspx") public String uploadDoc( @RequestParam(value = "doc", required = false) MultipartFile file, String docNum, HttpServletRequest request, HttpServletResponse response, ModelMap model) { WebErrors errors = validateUpload(file, request); CmsUser user = CmsUtils.getUser(request); CmsSite site = CmsUtils.getSite(request); if (errors.hasErrors()) { model.addAttribute("error", errors.getErrors().get(0)); return FrontUtils.getTplPath(request, site.getSolutionPath(), TPLDIR_MEMBER, DOC_UPLOAD); } errors = validateUploadFileSize( file, CmsUtils.getUser(request).getGroup().getAllowFileSize(), request); if (errors.hasErrors()) { model.addAttribute("error", errors.getErrors().get(0)); return FrontUtils.showError(request, response, model, errors); } String origName = file.getOriginalFilename(); String ext = FilenameUtils.getExtension(origName).toLowerCase(Locale.ENGLISH); // TODO 检查允许上传的后缀 try { String fileUrl; String ctx = request.getContextPath(); fileUrl = fileRepository.storeByExt(site.getLibraryPath(), ext, file); // 加上部署路径 fileUrl = ctx + fileUrl; model.addAttribute("docPath", fileUrl); model.addAttribute("docName", origName); model.addAttribute("docNum", docNum); model.addAttribute("docExt", ext); } catch (IllegalStateException e) { model.addAttribute("error", e.getMessage()); log.error("upload file error!", e); } catch (IOException e) { model.addAttribute("error", e.getMessage()); log.error("upload file error!", e); } cmsUserMng.updateUploadSize( user.getId(), Integer.parseInt(String.valueOf(file.getSize() / 1024))); return FrontUtils.getTplPath(request, site.getSolutionPath(), TPLDIR_MEMBER, DOC_UPLOAD); }