Spring MVC 中的同步图片上传 参数解析问题
2016-11-06 18:19
232 查看
在SpringMvc架构下进行同步图片上传,表单提交参数非常多,且页面存在动态生成的input和select,因此通过spring提供的@RequestParam()注解来接受参数就显得有些捉襟见肘了,于是各种想办法解决此问题!在看到以为仁兄的文章后http://blog.csdn.NET/lwphk/article/details/43015829 幡然醒悟,原来Spring的org.springframework.web.multipart.commons.CommonsMultipartResolver类是对原生HttpServletRequest进行了包装:
Spring的转换器里面就是调用common-fileupload的方式解析,然后再使用parseFileItems()方法封装成自己的文件对象
因此在使用common-fileupload的上传方法是行不通的,转换出来的Request将会是一个空值!
所以在这里我们仅仅只需要使用Spring提供的MultipartHttpServletRequest类把我们的request转换为二进制数据二和普通数据分离的request对象即可
接下来的工作就比较Easy了,就不多说了!!!第一次写博文,献丑了。。不好的地方希望大家多指点!!
Spring的转换器里面就是调用common-fileupload的方式解析,然后再使用parseFileItems()方法封装成自己的文件对象
因此在使用common-fileupload的上传方法是行不通的,转换出来的Request将会是一个空值!
DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); try { List<FileItem> list = upload.parseRequest(request); for(FileItem item : list){ if(item.isFormField()){ }else{ //item.write(new File("")); } } } catch (FileUploadException e) { e.printStackTrace(); }
所以在这里我们仅仅只需要使用Spring提供的MultipartHttpServletRequest类把我们的request转换为二进制数据二和普通数据分离的request对象即可
protected static void uploadAndResolveParamters(HttpServletRequest request, PageData pd){ //把带二进制表单数据的request对象交给spring转换 得到一个文件和普通数据分开的新request对象 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map<String, MultipartFile> imageFiles = multipartRequest.getFileMap(); //获得Request中的图片 for (Iterator<Entry<String, MultipartFile>> iterator = imageFiles.entrySet().iterator(); iterator.hasNext();) { Entry<String, MultipartFile> imageFile = iterator.next(); //循环迭代上传Request中的所有图片 //... } Map<String, String[]> parameterMaps = multipartRequest.getParameterMap(); //获得request对象的请求参数 for (Iterator<Entry<String, String[]>> iterator = parameterMaps.entrySet().iterator(); iterator.hasNext();) { Entry<String, String[]> entry = iterator.next(); String key = entry.getKey(); String[] value = entry.getValue(); //.... } }
接下来的工作就比较Easy了,就不多说了!!!第一次写博文,献丑了。。不好的地方希望大家多指点!!
相关文章推荐
- Spring mvc 上传图片遇到The current request is not a multipart request的问题
- Ba64 编码处理上传图片的参数失效问题
- Spring mvc 4.3.0 Request请求拿不到参数的问题解析
- Spring MVC Controller中解析GET方式的中文参数会乱码的问题
- 解决网页异步上传图片时不断更换预览图片时数据库累积文件问题与ajaxUploadFile上传多个参数问题
- apache与tomcat负载集群的方法与集群的文件同步问题和图片上传显示问题解决
- ajaxFileUpload 上传文件/图片,传参数,解决第二次无法上传问题
- Android发送POST请求上传图片后台解析本地一片黑问题
- Ume中图片上传后回传数据解析失败的问题
- spring mvc 上传文件获取参数的问题
- Spring MVC Controller中解析GET方式的中文参数会乱码的问题(tomcat如何解码)
- Alamofire,SwiftJSON,MJExtension,解析Json获取对象,带参数上传图片
- Spring MVC 多图片上传 ajax form表单 参数 提交后台
- **关于阿里云oss图片批量上传问题解析**
- apache与tomcat负载集群的方法与集群的文件同步问题和图片上传显示问题解决
- UEditor上传图片与spring mvc上传图片冲突问题。
- 关于IOS端图片上传到WEB端,JAVA解析图片并保存的问题(备忘)
- springmvc图片上传遇到的问题(除了图片还要传文字)乱码参数取不到
- laravel框架 上传图片问题解析
- Rxjava2+Retrofit2上传图片加参数失败问题解决