Form上传多图片
来源:互联网 发布:淘宝页面设计代码 编辑:程序博客网 时间:2024/06/04 23:25
<span style="white-space:pre"> </span> /** * 获取多个文件,,注意问题:<br> * 1.表单无需属性enctype="multipart/form-data"<br> * 2.前台使用XMLHttpRequest对象或ajax发送数据<br> * 3.前台使用FormData对象获取多个文件 * @param request * @return * @throws Exception */ @RequestMapping("/multi/save.do") public String save(HttpServletRequest request) throws Exception{ //转为MultipartHttpServletRequest MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; //获取所有的文件 Map map = multipartRequest.getFileMap(); MultipartFile multipartFile = null; for (Iterator i = map.keySet().iterator(); i.hasNext();) { DemoMultiPhoto photo = new DemoMultiPhoto(); Object obj = i.next(); multipartFile = (MultipartFile) map.get(obj); //获取文件名称 String fileName = multipartFile.getOriginalFilename(); //获取文件内容,二进制传送过来的 byte[] content = multipartFile.getBytes(); photo.setName(fileName); photo.setPhotoParentId(content); multiFileService.doSave(photo); } return "multiFile"; } /** * 只能获取单个文件(其他文件被覆盖),注意问题:<br> * 1.表单属性enctype="multipart/form-data",二进制流传送数据<br> * 2.表单文件控件必须有name属性<br> * 3.后台接受文件控件时,类型不是String,而是{@link MultipartFile},否则接受数据为null<br> * 4.HttpServletRequest转为MultipartHttpServletRequest,否则接受数据为null<br> * 5.只能获取一个文件,其他文件被覆盖(key不能重复) * @param request * @param name * @param ph 对象必须为{@link MultipartFile} * @return * @throws Exception */ @RequestMapping("/multi/save2.do") public String save2(HttpServletRequest request, String name, MultipartFile ph) throws Exception{ //转为MultipartHttpServletRequest MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; //遍历上传的多文件,其map的Key值是file控件的name属性,所以只能保存单个文件(key不重复,被覆盖) Map map = multipartRequest.getFileMap(); MultipartFile multipartFile = null; for (Iterator i = map.keySet().iterator(); i.hasNext();) { DemoMultiPhoto photo = new DemoMultiPhoto(); Object obj = i.next(); multipartFile = (MultipartFile) map.get(obj); //获取文件名称 String fileName = multipartFile.getOriginalFilename(); //获取文件内容,二进制传送过来的 byte[] content = multipartFile.getBytes(); photo.setName(fileName); photo.setPhotoParentId(content); multiFileService.doSave(photo); } return "multiFile"; }
对应JSP:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <jsp:include page="inc.jsp" flush="true"></jsp:include> <title>MultiFile 多图片上传</title> <meta charset="utf-8"> <script type="text/javascript"> function upload(){ var xhr = new XMLHttpRequest(); var form = new FormData(); var files = document.getElementById("file2").files; var name = $("#name2").val(); form.append("name",name); for(var i=0; i< files.length; i++){ form.append(files[i].name,files[i]); } xhr.open("POST","<%=request.getContextPath()%>/multi/save.do"); xhr.send(form); } </script> </head> <body> <form id="form1" action="javascript:upload();" method="post"> <label>用户:</label> <input type="text" id="name1" style="border:2px solid red;" name="name"/><br> <label>图片:</label> <input type="file" id="file1" multiple="multiple" style="border:2px solid red;" name="ph"/> <p class="help-block">支持jpg、jpeg、png、gif格式,大小不超过5.0M</p> <button type="submit" style="border: 2px solid red;">上传1</button> </form> <form id="form2" action="<%=request.getContextPath()%>/multi/save2.do" method="post" enctype="multipart/form-data"> <label>用户:</label> <input type="text" id="name2" style="border:2px solid red;" name="name"/><br> <label>图片:</label> <input type="file" id="file2" multiple="multiple" style="border:2px solid red;" name="ph"/> <p class="help-block">支持jpg、jpeg、png、gif格式,大小不超过5.0M</p> <button type="submit" style="border: 2px solid red;">上传2</button> </form> </body> </html>
0 0
- Form上传多图片
- form 上传图片
- form 上传图片
- drupal form 中图片上传
- form图片上传+spring MVC
- form表单上传文件、图片
- Jquery.form.js 上传图片
- ajax利用form上传图片
- form.js提交表单同步上传图片
- 使用form表单上传图片问题
- [Nginx 2] form表单提交,图片上传
- 使用form-data表单上传图片
- form表单ajax上传图片方法
- html form表单上传图片覆盖
- Extjs6.2 Form上传图片之前预览
- java模拟form表单上传图片
- Ios form表单上传图片(包含压缩图片)
- 图片上传-form表单还是base64-前端图片压缩
- weblogic学习之路
- 算法学习-(三)贪婪算法
- jQuery Validate ajax 后台验证
- Quartz2D实现渐变色
- PHPexcel简单理解
- Form上传多图片
- 账号管家(绿色版)
- Lucene总结系列(一)--认识、helloworld以及基本的api操作。
- You need to use a Theme.AppCompat theme (or descendant) with this activity.
- Android 5.x的低功耗蓝牙BLE开发简介
- 2017 Pycharm激活码
- maven 的配置
- C语言之字符串、字符数组,字符串函数
- Linux中JDK安装与配置