SpringMVC默认没有配置上传解析器

  • 使用SpringMVC来处理上传必须添加对MultipartResolver上传解析器的声明配置。

  • 配置之后,客户端每次进行请求的时候,SpringMVC都会检查request里面是否包含有上传文件信息的,如果包含了就会使用MultipartResolver进行解析

  • SpringMVC会使用一个支持文件处理的MultipartHttpServletRequest来包裹当前的HttpServletRequest,而MultipartHttpServletRequest是可以对文件进行处理的

  • SpringMVC内置了一个MultipartResolver的实现类org.springframework.web.multipart.commons.CommsMultipartResolver

pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.jege.spring.mvc</groupId>
  5. <artifactId>spring-mvc-upload-multipart-file</artifactId>
  6. <version>1.0.RELEASE</version>
  7. <packaging>war</packaging>
  8. <name>spring-mvc-upload-multipart-file</name>
  9. <url>http://maven.apache.org</url>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  12. <springframework.version>3.2.15.RELEASE</springframework.version>
  13. <junit.version>4.12</junit.version>
  14. <java.version>1.7</java.version>
  15. </properties>
  16. <dependencies>
  17. <dependency>
  18. <groupId>org.springframework</groupId>
  19. <artifactId>spring-webmvc</artifactId>
  20. <version>${springframework.version}</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>commons-fileupload</groupId>
  24. <artifactId>commons-fileupload</artifactId>
  25. <version>1.2.2</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>commons-io</groupId>
  29. <artifactId>commons-io</artifactId>
  30. <version>2.2</version>
  31. </dependency>
  32. <dependency>
  33. <groupId>javax.servlet</groupId>
  34. <artifactId>javax.servlet-api</artifactId>
  35. <version>3.1.0</version>
  36. <scope>provided</scope>
  37. </dependency>
  38. <dependency>
  39. <groupId>junit</groupId>
  40. <artifactId>junit</artifactId>
  41. <version>${junit.version}</version>
  42. <scope>test</scope>
  43. </dependency>
  44. </dependencies>
  45. <build>
  46. <finalName>spring-mvc-upload-multipart-file</finalName>
  47. <plugins>
  48. <plugin>
  49. <groupId>org.apache.maven.plugins</groupId>
  50. <artifactId>maven-compiler-plugin</artifactId>
  51. <configuration>
  52. <source>${java.version}</source>
  53. <target>${java.version}</target>
  54. </configuration>
  55. </plugin>
  56. <plugin>
  57. <groupId>org.eclipse.jetty</groupId>
  58. <artifactId>jetty-maven-plugin</artifactId>
  59. <version>9.3.14.v20161028</version>
  60. </plugin>
  61. <plugin>
  62. <groupId>org.apache.maven.plugins</groupId>
  63. <artifactId>maven-war-plugin</artifactId>
  64. <version>2.6</version>
  65. <configuration>
  66. <failOnMissingWebXml>false</failOnMissingWebXml>
  67. </configuration>
  68. </plugin>
  69. </plugins>
  70. </build>
  71. </project>

applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="
  5. http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context.xsd">
  9. <!-- 组件扫描 -->
  10. <context:component-scan base-package="com.jege.spring.mvc" />
  11. <!-- 引入spirng-mvc配置文件 -->
  12. <import resource="classpath:config/applicationContext-mvc.xml" />
  13. </beans>

applicationContext-mvc.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="
  5. http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/mvc
  8. http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  9. <!-- 配置视图解析器 -->
  10. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  11. <property name="prefix" value="/WEB-INF/pages/" />
  12. <property name="suffix" value=".jsp" />
  13. </bean>
  14. <!-- 配置上传解析器 -->
  15. <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  16. <!-- 配置上传文件最大尺寸为1000MB -->
  17. <property name="maxUploadSize" value="1048576000" />
  18. <!-- 设置在文件上传时允许写到内存中的最大值,以字节为单位计算,默认是10240 -->
  19. <property name="maxInMemorySize" value="4096" />
  20. <!-- 表示用来解析request请求的默认编码格式,当没有指定的时候根据Servlet规范会使用默认值ISO-8859-1。 -->
  21. <!-- 当request自己指明了它的编码格式的时候就会忽略这里指定的defaultEncoding -->
  22. <property name="defaultEncoding" value="UTF-8" />
  23. </bean>
  24. <!-- 可以访问静态资源 -->
  25. <mvc:default-servlet-handler />
  26. <!-- 解析@RequestMapping -->
  27. <mvc:annotation-driven />
  28. </beans>

源码地址

https://github.com/je-ge/spring

如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。您的支持将鼓励我继续创作!谢谢!



SpringMVC 系列教程1-文件上传-配置的更多相关文章

  1. Web攻防系列教程之文件上传攻防解析(转载)

    Web攻防系列教程之文件上传攻防解析: 文件上传是WEB应用很常见的一种功能,本身是一项正常的业务需求,不存在什么问题.但如果在上传时没有对文件进行正确处理,则很可能会发生安全问题.本文将对文件上传的 ...

  2. 补习系列(11)-springboot 文件上传原理

    目录 一.文件上传原理 二.springboot 文件机制 临时文件 定制配置 三.示例代码 A. 单文件上传 B. 多文件上传 C. 文件上传异常 D. Bean 配置 四.文件下载 小结 一.文件 ...

  3. SpringMVC:学习笔记(8)——文件上传

    SpringMVC--文件上传 说明: 文件上传的途径 文件上传主要有两种方式: 1.使用Apache Commons FileUpload元件. 2.利用Servlet3.0及其更高版本的内置支持. ...

  4. SpringMVC注解方式与文件上传

    目录: springmvc的注解方式 文件上传(上传图片,并显示) 一.注解 在类前面加上@Controller 表示该类是一个控制器在方法handleRequest 前面加上 @RequestMap ...

  5. SSM框架之SpringMVC(5)文件上传

    SpringMVC(5)文件上传 1.实现文件上传的前期准备 1.1.文件上传的必要前提 A form 表单的 enctype 取值必须是: multipart/form-data(默认值是:appl ...

  6. SpringMVC 通过commons-fileupload实现文件上传

    目录 配置 web.xml SpringMVC配置文件 applicationContext.xml 文件上传 Controller 上传实现一 上传实现二 测试 依赖 配置 web.xml < ...

  7. SpringBoot文件上传配置

    /** * 文件上传配置 * @return */ @Bean public MultipartConfigElement multipartConfigElement() { MultipartCo ...

  8. SpringMVC 文件上传配置,多文件上传,使用的MultipartFile(转)

    文件上传项目的源码下载地址:http://download.csdn.net/detail/swingpyzf/6979915   一.配置文件:SpringMVC 用的是 的MultipartFil ...

  9. SpringMVC 文件上传配置,多文件上传,使用的MultipartFile

    一.配置文件:SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file <!-- 配置Multipa ...

随机推荐

  1. 初识sql server 2000-数据库的连接

    这段时间主要进行学生信息管理系统的实现,所以与数据库打交道是难免的,我也是刚敲过5个数据库例子的小鸟,对数据库的理解还欠佳,不足之处大鸟飞过还请指点. 安装完sql server2000之后,首先要做 ...

  2. hdu1043-素数回文

    http://acm.hdu.edu.cn/showproblem.php?pid=1431 整体思想可以理解为打表,可以通过如下办法打表(但是相对比较麻烦),还可以直接使用数组,将所有数据直接存储进 ...

  3. protubuffer for windows配置指南!

    windows下Google Protocol Buffer 编译安装教程     protobuf的全称是Protocol Buffer,它是google 的一种数据交换的格式,可用于用于分布式应用 ...

  4. 异常:failed for object com.sdu.crm.pojo.Customer@136a986 [java.lang.NullPointerException]

    异常: failed for object com.sdu.crm.pojo.Customer@136a986 [java.lang.NullPointerException] 大家好,如果大家看到了 ...

  5. Win7下python Scrapy一站式搭建全攻略(内附相关下载链接)

    写在前面: 好久没有登录博客了,意外看到之前的几篇文章都有不错的阅读量,开心极了,不过没有什么点赞和评论,大概是没有给大家带来什么切实的帮助吧.o(*////▽////*)q. 最近在NTU负责一个国 ...

  6. 【转载】Servlet Filter(过滤器)、Filter是如何实现拦截的、Filter开发入门

    Servlet Filter(过滤器).Filter是如何实现拦截的.Filter开发入门 Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过F ...

  7. MySQL5.7解压版详细安装教程,在最后一步需要随机密码

    这里为百度经验 http://jingyan.baidu.com/article/ff42efa93580c4c19e2202b6.html 然而在最后一步,回车不能够越过密码. 需要在解压的mysq ...

  8. 背水一战 Windows 10 (39) - 控件(布局类): VariableSizedWrapGrid, Border, Viewbox, SplitView

    [源码下载] 背水一战 Windows 10 (39) - 控件(布局类): VariableSizedWrapGrid, Border, Viewbox, SplitView 作者:webabcd ...

  9. 3-this关键字

    1.表示类中的属性和调用方法 package com.example; /** * Created by Y on 16/4/13. */ public class People { private ...

  10. 为知笔记markdown插件安装

    Wiz.Editor.md 是一个基于 Editor.md 构建的为知笔记 Markdown 插件. 主要特性 多种样式主题 支持实时预览 支持代码高亮 支持搜索替换 支持ToC目录 Tex数学公式 ...