Spring利用MultipartFile接收FormData对象上传文件(可接收AJAX上传的包含多文件的复杂表单内容)
来源:互联网 发布:em算法 q函数 编辑:程序博客网 时间:2024/06/06 04:36
goodsController
/** * 添加新的Goods * @param httpSession sessionUser * @return resMap: 成功msg==>"ok" / 失败 error==>错误信息 */@RequestMapping(value = "/addGoods", method = RequestMethod.POST)@ResponseBodypublic Map<String, Object> add(HttpServletRequest request, @RequestParam(value="goodsPic",required = false) MultipartFile[] goodsPics,//商品详情图,单文件、多文件都可 HttpSession httpSession) { Map<String, Object> resMap = new HashMap<String, Object>(); try { String goodsIdStr = request.getParameter("godosId"); //XXX表单其他数据的处理 System.out.println("goodsPics"+(goodsPics==null?">无":(goodsPics.toString()+",文件数"+goodsPics.length))); goodsImgService.saveGoodsImgs(goodsPics, Long.valueOf(goodsIdStr));//保存图片 resMap.put("msg", "ok"); } catch (Exception e) { e.printStackTrace(); resMap.put("error", "提交商品出错"+e.getMessage()); } return resMap;}
goodsImgService
/** * 保存多张图片 * @param goodsPics * @param goodsId 商品ID * @author Nifury */@Transactional(rollbackFor={IllegalStateException.class,IOException.class,SQLException.class,RuntimeException.class})public void saveGoodsImgs(MultipartFile[] goodsPics, long goodsId) throws IllegalStateException, IOException { if(goodsPics==null || goodsPics.length<=0){//数组无图片 return; } for (MultipartFile multipartFile : goodsPics) { System.out.println("准备处理:"+(multipartFile==null?">无":(multipartFile.getOriginalFilename()+",大小"+multipartFile.getSize()))); this.saveImg(multipartFile, goodsId); }}/** * 保存单张图片 * @param multipartFile * @param goodsId 商品ID * @author Nifury */private void saveImg(MultipartFile multipartFile, long goodsId) throws IllegalStateException, IOException { if(multipartFile!=null && multipartFile.getSize()>0){//有图 String originalFilename = multipartFile.getOriginalFilename(); if( !(originalFilename.endsWith(".jpg") || originalFilename.endsWith(".jpeg") || originalFilename.endsWith(".png") || originalFilename.endsWith(".gif")) ){ throw new RuntimeException("图片格式不正确==>"+originalFilename); } String GOODS_PIC_DIR = "XXX/images/goods/s/";//商品图片 File dir = new File(GOODS_PIC_DIR +goodsId+"/"); if (!dir.exists()) {//目录不存在则创建目录 dir.mkdir(); } String newFilename = (long)(Math.random()*1000000) +originalFilename.substring(originalFilename.lastIndexOf(".")); System.out.println("保存图片"+originalFilename); multipartFile.transferTo(new File(GOODS_PIC_DIR +goodsId+"/"+newFilename));//保存文件 System.out.println("已保存"); GoodsImg goodsImg = new GoodsImg();//数据存储到数据库 goodsImg.setGoodsId(goodsId); goodsImg.setImgUrl(newFilename); goodsImgDao.insert(goodsImg); }}
参考资料:
JQuery Ajax使用FormData对象上传文件(图片)
http://m.blog.csdn.net/article/details?id=52330280
0 0
- Spring利用MultipartFile接收FormData对象上传文件(可接收AJAX上传的包含多文件的复杂表单内容)
- ajax上传带文件的form表单,springmvc接收
- [HTML5][JSP]利用FormData对象完成表单的异步上传|文件上传|图文同时上传
- ajax 利用formdata对象 实现多文件上传
- 利用js/jq 利用FormData 对象和ajax上传文件
- H5的FormData对象完成ajax上传文件multiFile
- Ajax使用FormData对象上传文件的两种方式
- 利用html5的FormData对象和ajax实现异步文件上传
- 利用html5的FormData对象和ajax实现异步文件上传
- HTML5多文件上传,ajax传,Java WebService Spring接收
- spring mvc 文件上传 controller中接收form表单中提交上来的文件
- SpringBoot+Ajax文件上传+FormData表单提交
- Spring MultipartFile 文件上传
- 使用HttpClient4实现文件上传请求的发送,服务器端以MultipartFile形式接收(附依赖jar包地址)
- Servlet---表单参数接收/简单的文件上传
- WebUploader 上传的文件与表单接收方法
- 文件上传与FormData对象的使用
- SpringMVC MultipartFile file文件上传及参数接收
- 安卓中引入GreenDAO数据库框架,包括封装好的数据库操作工具类
- 数据存储—读取Assets中的数据test
- 《新闻阅读器》总结”三“ ImageLoader
- Android Style理解
- Runnable和Callable的区别
- Spring利用MultipartFile接收FormData对象上传文件(可接收AJAX上传的包含多文件的复杂表单内容)
- 从尾到头打印链表
- ctype.h
- 数据存储-读取raw文件中的数据test
- GridControl添加操作列
- Yii2-使用ActiveRecord数据操作数据分页的记录重复问题
- ARCGis+Google map api 校园地理信息导航系统
- ABAP-在SMARTFORMS中取消使用WORD作为编辑器
- 数据存储—读写内部存储的文件数据