spring 上传多图片
来源:互联网 发布:艾利丹尼森 知乎 编辑:程序博客网 时间:2024/06/02 03:55
前端部分
//可使用FormData 携带file进行上传var formdata = new FormData();var imageInfos = [];//上传多$.each($(".myupload"),function(n,item){ var file = $(uploadFile).get(0).files[0]; //只上传图片 if (file.type.match("image.*")) { formdata.append("file"+n, file); //携带 图片的一些额外信息 var imageInfo = {"sort":n, "link":link, "product":product}; imageInfos.push(imageInfo); } });//使用JSON.stringify 转成JSON字符串,否则后端接收的是[object Object]formdata.append("imageInfos", JSON.stringify(imageInfos));
然后使用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; }
0 0
- spring 上传多图片
- Spring 图片上传
- spring mvc 图片上传
- Spring 图片上传实例
- spring mvc 上传图片
- Spring MVC 图片上传
- spring上传图片
- Spring mvc图片上传
- spring mvc 上传图片
- spring mvc 图片上传
- spring,图片上传
- spring mvc 图片上传
- spring mvc 上传图片
- Spring MVC-图片上传
- Spring Boot上传图片
- Spring MVC上传图片
- Spring MVC多图片上传,多值上传
- Spring Mvc 上传图片代码
- 机器视觉入门 Visual Studio 2015 配置 Opencv3.2
- Datatables详细使用教程以及参数理解
- 2 Hadoop Shell命令 启动命令和控制命令
- Keras + LSTM + 词向量 情感分类/情感分析实验
- Cesium原理篇:3D Tiles(1)渲染调度
- spring 上传多图片
- URL传值时含有特殊字符(+#等)
- 费舍尔方法(Fisher's method)的数学原理解释
- 2017年3月10日,周结(三),开源框架初使用
- 论文笔记:Grid Long Short-Term Memory
- 496. Next Greater Element I
- 第五届蓝桥杯【省赛试题8】蚂蚁感冒
- 程序化广告实战分享系列
- 最简洁完整的Java基础教程(基本语法、继承、接口、多态)