从Spring3.1开始,Spring提供了两个MultipartResolver的实现用于处理multipart请求,分别是:CommonsMultipartResolver和StandardServletMultipartResolver。CommonsMultipartResolver使用common fileupload来处理multipart请求,所以在使用的时候必须引入相应的jar包。StandardServletMultipartResolver是基于Servlet3.0来处理multipart请求的,所以不需要引用其他jar包,但是必须使用支持Servlet3.0的容器才可以。

Spring的配置

  在配置文件中,bean的id必须是multipartResolver,实例如下:

<bean id="multipartResolver"
class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
</bean>

web.xml的配置

  1.要注意web.xml节点使用的版本必须是3.0及以上

  2.注意servlet节点下的multipart-config节点的配置。区别与使用CommonsMultipartResolver进行文件上传时配置的不同。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0"> ····
<servlet>
<servlet-name>fileUpload</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:fileUpload-servlet.xml</param-value>
</init-param>
<load-on-startup></load-on-startup>
<multipart-config>
<!--临时文件的目录-->
<location>/data</location>
<!-- 上传文件最大2M -->
<max-file-size></max-file-size>
<!-- 上传文件整个请求不超过4M -->
<max-request-size></max-request-size>
</multipart-config>
</servlet>
....
</web-app>

Controller设置  

@Controller
@RequestMapping(value = "/file")
public class FileController { /**
* 在方法签名中使用MulitpartHttpServletRequest类型。
*
* @param request
* @return
*/
@RequestMapping(value = "/commUploadB")
@ResponseBody
public JSONObject commUploadB(MultipartHttpServletRequest request) {
JSONObject json = new JSONObject();
json.put("succ", false);
try {
MultipartFile file = request.getFile("uploadFileB");// 与页面input的name相同
File imageFile = new File("d:/upload2.jpg");// 上传后的文件保存目录及名字
file.transferTo(imageFile);// 将上传文件保存到相应位置
json.put("succ", true);
return json;
} catch (Exception e) {
e.printStackTrace();
return json;
}
} /**
* 在方法签名中使用MultipartFile类型,并使用@RequestPart注解。
*
* @param uploadFileC
* @return
*/
@RequestMapping(value = "/commUploadC")
@ResponseBody
public JSONObject commUploadC(@RequestPart("uploadFileC") MultipartFile uploadFileC) {
JSONObject json = new JSONObject();
json.put("succ", false);
try {
File imageFile = new File("d:/upload3.jpg");// 上传后的文件保存目录及名字
uploadFileC.transferTo(imageFile);// 将上传文件保存到相应位置
json.put("succ", true);
return json;
} catch (Exception e) {
e.printStackTrace();
return json;
}
}
}

Spring中使用StandardServletMultipartResolver进行文件上传的更多相关文章

  1. Spring使用经验之StandardServletMultipartResolver实现文件上传的基本配置

    Note:Spring使用版本是4.1.6.RELEASE 1. 在实现了AbstractAnnotationConfigDispatcherServletInitializer的类中重载custom ...

  2. Spring Boot 2.X 实现文件上传(三)

    使用 SpringBoot 项目完成单个.多个文件的上传处理,并将上传的文件保存到指定目录下. 代码演示案例 所有的 HTML 页面文件 index.html <!DOCTYPE html> ...

  3. 从零开始的Spring Boot(3、Spring Boot静态资源和文件上传)

    Spring Boot静态资源和文件上传 写在前面 从零开始的Spring Boot(2.在Spring Boot中整合Servlet.Filter.Listener的方式) https://www. ...

  4. Spring提供的API实现文件上传

    Spring为我们提供了文件上传接口MultipartRequest及其实现类StandardMultipartFile StandardMultipartFile是StandardMultipart ...

  5. zt对于C#中的FileUpload解决文件上传大小限制的问题设置

    对于C#中的FileUpload解决文件上传大小限制的问题设置 您可能没意识到,但对于可以使用该技术上载的文件的大小存在限制.默认情况下,使用 FileUpload 控件上载到服务器的文件最大为 4M ...

  6. 分享知识-快乐自己:SpringMvc中的单多文件上传及文件下载

    摘要:SpringMvc中的单多文件上传及文件下载:(以下是核心代码(拿过去直接能用)不谢) <!--设置文件上传需要的jar--> <dependency> <grou ...

  7. Spring MVC4使用Servlet3 MultiPartConfigElement文件上传实例

    在这篇文章中,我们将使用Spring MultipartResolver 实现 StandardServletMultipartResolver在Servlet3环境中实现单点和多文件上传功能.Spr ...

  8. Spring Boot会员管理系统——处理文件上传

    温馨提示 Spring Boot会员管理系统的中,需要涉及到Spring框架,SpringMVC框架,Hibernate框架,thymeleaf模板引擎.所以,可以学习下这些知识.当然,直接入门的话使 ...

  9. spring mvc 3.0 实现文件上传功能

    http://club.jledu.gov.cn/?uid-5282-action-viewspace-itemid-188672 —————————————————————————————————— ...

随机推荐

  1. HTML5基础实例

    <!DOCTYPE html> <!--声明HTML文档--> <html> <head> <title>我的网页</title> ...

  2. django之content_type

    什么是content type:django内置的一个组件,这个组件帮忙做连表的操作.(混搭连表) 适用场景:适用于一张表与多张表同时做关联的时候.直接导入就可以使用了. 关联数据库说有的表:让我们可 ...

  3. Codeforces 1106 简要题解

    文章目录 A题 B题 C题 D题 E题 F题 传送门 A题 传送门 读错题还能过样例我给自己点个赞. 题意简述:给一个010101网格SSS,问满足Si,j=Si+1,j+1=Si+1,j−1=Si− ...

  4. 2018.10.29 NOIP训练 数据结构(带修改莫队)

    传送门 带修莫队板题. 直接按照经典写法做就行了. 代码

  5. springboot 配置DRUID数据源

    druid 是阿里开源的数据库连接池. 开发时整合   druid 数据源过程. 1.修改pom.xml <dependency> <groupId>mysql</gro ...

  6. vue的computed属性

    vue的computed属性要注意的两个地方,1,必须有return,2,使用属性不用括号 <div> <input type="text" v-model=&q ...

  7. git 如何更改某个提交内容/如何把当前改动追加到某次commit上? git rebase

    原文地址        http://www.jianshu.com/p/8d666830e826 [自己总结] 0, git diff git diff a b 是以a为基准,把b和a的区别展示出来 ...

  8. lepus部署

    lepus部署 lepus安装 cd /usr/local/src/lepus_v3.7/ cd python/ sh install.sh mysql配置 mysql -uroot -p'zaBBi ...

  9. CodeForces 916B Jamie and Binary Sequence (changed after round) (贪心)

    题意:给定两个数字n,m,让你把数字 n 拆成一个长度为 m 的序列a1,a2,a3...am,并且∑2^ai = n,如果有多组,要求序列中最大的数最小,然后再相同就要求除了最大数字典序最大. 析: ...

  10. 小论文matlab作图技巧

    小论文matlab作图技巧 编辑->复制选项 编辑->图形属性 图中右击->字型 编辑->复制图片,即可. 效果: 宽:5.9高: 7.91