然后使用ajax 请求,不废话了!
Controller层
@ResponseBody @RequestMapping(value="operdesigncarousel.htm", method=RequestMethod.POST) public Map<String, Object> uploadDemo(HttpServletRequest request,HttpServletResponse response) { Map<String, Object> paraMap = requestUtil.getParaMap(request); Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> saveFile = FileUploadUtil .multipartUpload(request, "\\ecommerce\\design"); int ret = Integer.parseInt(saveFile.get("ret").toString()); if(ret > 0) { return service.add(paraMap); } resultMap.put("ret", -1); resultMap.put("desc", saveFile.get("desc")); return resultMap; }Tomcat 配置虚拟路径 在D:\apache-tomcat-8.5.5\conf\Catalina\localhost新建一个 名和path相同的xml文件如:
一个基于spring 的 fileupload 工具
/** * TODO<br/> * @param request * @param savePath 例如:根目录(D:\apache-tomcat-8.5.5\webapps\erp-crm) + 保存目录(\crm\mall\design) + 文件名 (demo.png) * @param isSaveInProject true 保存在webapp 项目下, 重新部署会清空, false 根目录为对应tomcat目录 * @param isNewFileName true 生成新文件名 格式为 yyyyMMddHHmmss(0++ 防止多上传同名).suffix * @return Map 包含 ret -1 失败; desc 描述; pathList 文件url列表 */ public static Map<String, Object> multipartUpload(HttpServletRequest request, String savePath, boolean isSaveInProject, boolean isNewFileName) { MultipartHttpServletRequest mulRequest = (MultipartHttpServletRequest) request; Map<String, Object> result = new HashMap<String, Object>(); List<String> pathList = new ArrayList(); StringBuilder builder = new StringBuilder(); Map<String, MultipartFile> fileMap = mulRequest.getFileMap(); //null 判断 if(fileMap == null || fileMap.isEmpty()) { result.put("ret", "-1"); result.put("desc", "上传文件不存在"); return result; } //项目路径 webapp 下,重新部署会清空 String projectPath = mulRequest.getSession().getServletContext().getRealPath("/"); String dirPath = System.getProperty("catalina.home"); //循环fileMap int count = 0; for(String key : fileMap.keySet()){ MultipartFile file = fileMap.get(key); String filename = file.getOriginalFilename(); //判断是否存在webapp 项目下 if(isSaveInProject){ dirPath = projectPath; } //目录不存在,创建 File dirPathFile = new File(dirPath+savePath); if (!dirPathFile.exists()) { dirPathFile.mkdirs(); } //判断是否生成新文件名 if(isNewFileName){ filename = getNewFileName(filename, count); count++; } String filePath = savePath + File.separatorChar + filename; File saveFile = new File(dirPath+ File.separatorChar +filePath); try { file.transferTo(saveFile); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } builder.append(filePath).append("&"); pathList.add(filePath); } builder.deleteCharAt(builder.length()-1); result.put("filePath", builder.toString()); result.put("pathList", pathList); result.put("ret", 1); result.put("desc", "上传成功"); return result; }