示例#1
0
 @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);
 }