从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. beforeunload事件

    window.addEventListener("beforeunload", function (e) { var confirmationMessage = "\o/ ...

  2. ubuntu设置IP地址、网关的方法

    打开terminal(用Ctrl+Alt+T打开) 1. 输入ifconfig  打印如下: enp1s0    Link encap:Ethernet  HWaddr 6c:4b:90:0b:53: ...

  3. Docker Compose部署 nginx代理Tomcat集群

    一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...

  4. DOS下如何打开程序

    cd c:    #先切回主盘,因为最开始在C:\Users\Administrator这个目录下 cd “指定文件所在的盘:”      #切换到文件所在盘 print "文件目录&quo ...

  5. XCode中常用错误解决

    No such file or directory     解决方法(可以依次尝试,总有一种能最终解决问题):          方法1.退出Xcode,然后从finder里面进入~/Library/ ...

  6. 将电脑信息上传到中国移动ONENET平台

    用两个小时做的 可以用在服务器远程运维等环境非常方便 需要源码的可以联系NBDX123

  7. kafka讲解

    转载http://www.jasongj.com/2015/01/02/Kafka深度解析 Kafka是Apache下的一个子项目,是一个高性能跨语言分布式发布/订阅消息队列系统,而Jafka是在Ka ...

  8. Scala_基本语法

    基本语法 声明值和变量 Scala有两种类型的变量: val:是不可变的(变量的引用不可变),在声明时就必须被初始化,而且初始化以后就不能再赋值: var:声明的时候需要进行初始化,初始化以还可以再对 ...

  9. python全栈学习1.开课介绍

    python————web  && 爬虫 Django pyramid Tornado Bottle Flask GUI图形开发 QT 想要类似于执行shell脚本一样执行python ...

  10. bootstrap2.1相关文档

    本节课我们主要学习一下 Bootstrap表格和按钮功能,通过内置的 CSS定义,显示各种丰富的效果. 一.表格 Bootstrap提供了一些丰富的表格样式供开发者使用. 1.基本格式 //实现基本的 ...