SpringMVC实现本地文件上传,跨服务区上传,拦截器的使用
一、SpringMVC本地文件上传
注意:都是maven的有骨架webapp
就是把客户端的文件保存一份到服务器,说白了就是文件的复制
常见的应用场景:上传头像、上传各种图片、上传各种文件等等
前提
form表单的请求方式必须是post
添加form表单参数enctype,enctype=“multipart/form-data”,此时如果使用原生
request.getParameter()方法获取参数时都为null,我们实现文件上传,一般都会借助第三方组件
实现文件上传。
添加依赖,commons-fileupload,commons-io,它是apache出品的开源工具用来专门处理上传
的工具包
SpringMVC底层封装了commons-fileupload
效果图
1.1.总项目结构
1.2.pom.xml配置文件
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.4</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.4</version>
</dependency>
1.3.spring-mvc.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd
">
<mvc:annotation-driven/>
<!--配置注解扫描器-->
<context:component-scan base-package="com.wj.controller"/>
<!-- -配置视图解析器:如何将控制器返回的字符串结果,转换为一个物理的视图文件-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 指定视图文件所在的路径-->
<property name="prefix" value="/WEB-INF/"/>
<!-- 指定视图文件的技术-->
<property name="suffix" value=".jsp"/>
</bean>
<!--放行静态资源-->
<mvc:default-servlet-handler/>
<!--配置文件上传解析器-->
<!--id的值是固定的 必须是multipartResolver-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--设置上传文件的一些参数,例如:最大文件限制-->
<property name="maxUploadSize" value="5242880">
</property>
</bean>
</beans>
1.4.web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=