spring 封装了文件上传功能,使用spring mvc上传文件需要完成下面的工作:
1. 配置MultipartFileResolver
在spring容器中注入MultipartFileResolver bean
<bean id="commonsMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8"/> <property name="maxInMemorySize" value="1073741824"/> <property name="maxUploadSize" value="50000000"/> </bean>
应用该功能需要apche的commons-fileupload和commons-io依赖,因为它们提供底层api,spring是对它们的一种封装
2. jsp文件创建表单
<form id="upload_form" action="/upload/example" method="post" enctype="multipart/form-data" onsubmit="return sub();" > <textarea rows="4" name="description" class="form-control ng-pristine ng-valid ng-touched" placeholder="填写something"></textarea> <span class="gray weight">上传歌曲:</span><input id="target_file" name="file" type="file" /> <button id="submit_btn" class="inputBtn">确定上传</button> </form> <script type="text/javascript"> function sub() {//简单的验证 var file = $("#week_song_file").val(); if(file==null||file.indexOf(".mp3")==-1){ alert("请选择mp3格式的文件"); return false; } return true; } </script>
文件的提交有其它方式,比如ajax或jquery的上传插件,这里只做示例
3. controller中文件上传处理
@Controller public class UploadController { @Autowired MultipartResolver resolver; @RequestMapping(value="/member/{uid}/weeksong/upload",method = RequestMethod.POST) @ResponseBody public String upload(@PathVariable long uid,HttpSession session,HttpServletRequest request){ String result="ok"; if(resolver.isMultipart(request)){ MultipartHttpServletRequest multipartRequest=resolver.resolveMultipart(request); MultipartFile file=multipartRequest.getFile("file");//此处文件名字‘file’要于表单中提交的一致 String description=multipartRequest.getParameter("description"); //处理file.... } }else{ result="type error"; } return result; } }
接收文件的方法中有另一种方式:
@RequestMapping(value="/member/{uid}/weeksong/upload",method = RequestMethod.POST) @ResponseBody public String upload(@PathVariable long uid,HttpSession session,@RequestParam("file")MultipartFile file,@RequestParam String description){ //handle file... }
直接将上传的文件以变量的形式封装到一个MultipartFile类型的对象file中,这时出现错误:java.lang.IllegalArgumentException: Expected MultipartHttpServletRequest: is a MultipartResolver configured? 具体原因还要研究一下
相关推荐
NULL 博文链接:https://qiaolevip.iteye.com/blog/1848378
NULL 博文链接:https://mingruofei.iteye.com/blog/699421
This is a tutorial on Spring MVC, a module in the Spring Framework for rapidly developing web applications. The MVC in Spring MVC stands for Model-View-Controller, a design pattern widely used in ...
spring-mvc-file-upload 肯定有成千上万个类似的例子。 这旨在成为在Spring MVC应用程序中上传多个文件所需的最少代码。 要编译并运行该示例,请在终端中运行以下命令: mvn tomcat:run 自然地,假定您已经在...
jQueryFileUploadMaster 上传 插件 spring mvc 整合 兼容IE8/9(IE8下功能只能说能够使用,但是不能和chrome比,比如说:IE8下,一次只能上传一个文件,而chrome可以多个同时上传)
Spring-Framework, Spring Framework 相关项目 弹簧框架Spring Framework 相关代码restjs-spring-mvc http://hmkcode.com/spring-mvc-rest-js/spring-mvc-jquery-file-upload http:/
Getting started with Spring ...Chapter 13 – More Spring Web MVC – internationalization, file upload and asynchronous request processing Chapter 14 – Securing applications using Spring Security
cd spring-boot-file-upload-download-rest-api-example mvn spring-boot:run 而已! 可以从http://localhost:8080访问该应用程序。 您也可以以jar的形式打包应用程序,然后像这样运行jar文件- mvn clean package...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 ...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 ...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 ...
spring mvc+bootstrap实现文件的上传实例,文件可拖拽选择和多选。
本文主要给大家介绍了关于Angular.js文件上传控件ng-file-upload结合springMVC使用的相关内容,对于Angular.js文件上传控件ng-file-upload不熟悉的朋友们可以先看看这篇文章(传送门),下面话不多说,来看看详细的...
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
关于项目项目名称efo是Easy File Online的缩写,字面意思就是让您轻松实现在线文件管理本系统具有文件共享的功能,权限控制和自定义配置都很强大(可能还不完善)系统原型框架有Spring Boot,Spring,SpringMVC,...
JAVA开发框架:Spring MVC+Spring+Mybatis 缓存框架:j2cache 前端开发框架:Layui+JQuery+html 前台模板引擎:art-template 应用场景: 1、SmartWx是一款基于JAVA企业级平台研发的微信公众号管理系统, 依托企业级...