Spring MVC(四)文件上传

文件上传步骤

  1.写一个文件上传的页面
  2.写一个文件上传的控制器
注意:
  1.method="post"
  2.enctype="multipart/form-data"
  3.文件类型上传组件 type="file"
  4.接收文件参数需要使用MultipartFile 类型的参数
  5.配置文件解析器,文件解析器 id 必须是 "multipartResolver"

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <form action="upload.do" method="post" enctype="multipart/form-data">
11         姓名:<input type="text" name="username"><br>
12         头像:<input type="file" name="mf"><br>
13         <input type="submit" value="上传">
14     </form>
15 </body>
16 </html>

upload.jsp

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <h1>欢迎进入</h1>
11     <img alt="程序猿" src="${imgPath }">
12 </body>
13 </html>

show.jsp

 1 package com.xcz.controller;
 2
 3 import java.io.File;
 4 import java.io.IOException;
 5
 6 import javax.servlet.http.HttpServletRequest;
 7
 8 import org.springframework.stereotype.Controller;
 9 import org.springframework.web.bind.annotation.RequestMapping;
10 import org.springframework.web.multipart.MultipartFile;
11
12 @Controller
13 public class UploadController {
14     @RequestMapping("/toUpload.do")
15     public String toUpload() {
16         return "upload";
17     }
18
19     @RequestMapping("/upload.do")
20     public String upload(String username, MultipartFile mf, HttpServletRequest request) {
21         String path = request.getServletContext().getRealPath("images");
22         String orname = mf.getOriginalFilename();
23         String fileName = System.currentTimeMillis() + orname.substring(orname.lastIndexOf("."));
24         String filePath = path + "/" + fileName;
25         File file = new File(filePath);
26         try {
27             mf.transferTo(file);
28             request.setAttribute("imgPath", "images/" + fileName);
29         } catch (IOException e) {
30             e.printStackTrace();
31         }
32         return "show";
33     }
34 }

UploadController

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xmlns:lang="http://www.springframework.org/schema/lang"
 6     xmlns:mvc="http://www.springframework.org/schema/mvc"
 7     xmlns:util="http://www.springframework.org/schema/util"
 8     xmlns:task="http://www.springframework.org/schema/task"
 9     xmlns:aop="http://www.springframework.org/schema/aop"
10     xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
11         http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd
12         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
13         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
14         http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-4.1.xsd
15         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
16         http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd">
17     <!-- 开启组件扫描 -->
18     <context:component-scan base-package="com.xcz"></context:component-scan>
19     <!-- 开启mvc标注 -->
20     <mvc:annotation-driven></mvc:annotation-driven>
21     <!-- 配置视图处理器 -->
22     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
23         <property name="prefix" value="/WEB-INF/"></property>
24         <property name="suffix" value=".jsp"></property>
25     </bean>
26     <!--  配置一个文件解析器 -->
27     <bean  id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
28        <property name="maxUploadSize" value="102400"></property>
29        <property name="resolveLazily" value="true"></property>
30     </bean>
31     <!-- 引入外部db.properties -->
32     <context:property-placeholder location="classpath:db.properties"/>
33     <!-- 配置数据源 -->
34     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
35         <property name="driverClassName" value="${driverClassName}"></property>
36         <property name="url" value="${url}"></property>
37         <property name="username" value="${jdbc.username}"></property>
38         <property name="password" value="${jdbc.password}"></property>
39     </bean>
40 </beans>

mvc.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 4     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
 5     version="3.1">
 6     <display-name>SpringMVC-06</display-name>
 7     <welcome-file-list>
 8         <welcome-file>index.html</welcome-file>
 9         <welcome-file>index.htm</welcome-file>
10         <welcome-file>index.jsp</welcome-file>
11         <welcome-file>default.html</welcome-file>
12         <welcome-file>default.htm</welcome-file>
13         <welcome-file>default.jsp</welcome-file>
14     </welcome-file-list>
15     <!-- 配置请求入口 -->
16     <servlet>
17         <servlet-name>SpringMVC</servlet-name>
18         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
19         <!-- 配置初始化参数 -->
20         <init-param>
21             <param-name>contextConfigLocation</param-name>
22             <param-value>classpath:mvc.xml</param-value>
23         </init-param>
24         <load-on-startup>1</load-on-startup>
25     </servlet>
26     <servlet-mapping>
27         <servlet-name>SpringMVC</servlet-name>
28         <url-pattern>*.do</url-pattern>
29     </servlet-mapping>
30     <!-- 配置编码过滤器 -->
31     <filter>
32         <filter-name>filterEncoding</filter-name>
33         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
34         <init-param>
35             <param-name>encoding</param-name>
36             <param-value>utf-8</param-value>
37         </init-param>
38     </filter>
39     <filter-mapping>
40         <filter-name>filterEncoding</filter-name>
41         <url-pattern>*.do</url-pattern>
42     </filter-mapping>
43 </web-app>

web.xml

原文地址:https://www.cnblogs.com/resultset/p/9944507.html

时间: 2024-08-23 13:41:24

Spring MVC(四)文件上传的相关文章

Spring MVC 多文件上传大小限制及异常处理

Spring MVC  多文件上传大小限制及异常处理 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 在 spring mvc 的默认配置文件 WEB-INF/xxx-servlet.xml 中

【Spring学习笔记-MVC-13】Spring MVC之文件上传

作者:ssslinppp       1. 摘要 Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的.Spring使用Jakarta Commons FileUpload技术实现了一个MultipartResolver实现类:CommonsMultipartResolver. 下面将具体讲解Spring MVC实现文件上传的具体步骤. 2. 添加Jar包 Spring MVC文件上传,需要添加如下两个jar包: commons-fil

spring mvc ajaxfileupload文件上传返回json下载问题

问题:使用spring mvc ajaxfileupload 文件上传在ie8下会提示json下载问题 解决方案如下: 服务器代码: @RequestMapping(value = "/addAnalysis", method = RequestMethod.POST) public void addAnalysisUI( HttpServletResponse response,HttpServletRequest request,HttpSession session, @Requ

Ext4.2结合Spring MVC实现文件上传显示进度

1.实现原理: 在大文件上传时显示上传进度是很有必要的,不能让用户感觉到陷入无穷的等待中,或感觉程序已经卡死.为此我们可以在session中存一个上传进度的变量,在文件上传的过程中实时的去修改这个值,这就需要在后台重写Spring MVC自带的上传解析类,每上传一定的字节数就修改一下session中的进度,在前台通个AJAX请求每隔一定的时间去获取这个值显示给用户,这样就达到了显示上传进度的需求,不过这样频繁的请求服务器无疑是增加了服务器的压力,在没有使用任何第三方上传组件的情况下只能如此. 2

Spring MVC实现文件上传和下载

本篇博客将讲解的是Springmvc的文件上传和下载功能.对于上传功能,我们在项目中是经常会用到的,比如用户注册的时候,上传用户头像,这个时候就会使用到上传的功能.而对于下载,使用场景也很常见,比如我们项目中有个使用说明是是pdf版的,会提供给用户进行下载的功能.相对于来说,这两个功能都是很常见,废话不多说,按照惯例,我们先来看一下本篇博客的目录. 目录 一:搭建SpringMvc开发环境 二:实现文件上传的功能 三:将上传文件绑定到具体的对象上 四 : 实现用户下载的功能 五:总结 一:搭建S

spring mvc注解文件上传下载

需要两个包: 包如何导入就不介绍了,前端代码如下(一定要加enctype="multipart/form-data"让服务器知道是文件上传): <form action="upload.do" method="post" enctype="multipart/form-data"> <input type="file" id="upimage" name="f

java之spring mvc之文件上传

目录结构如下: 注意,下面说的配置文件,一般都是值的src下的配置文件,即mvc.xml.如果是web.xml,则直接说 web.xml 1. 文件上传的注意点 表单必须是post提交,必须将 enctype 设置为 “multipart/form-data”, 使用 commons-fileupload 提交文件,需要添加 commons-fileupload 和 commons-io 的 jar 包. 2.Jsp 页面 <form action="file/upload.do"

Spring MVC 之文件上传(七)

SpringMVC同样使用了apache的文件上传组件.所以需要引入以下包: apache-commons-fileupload.jar apache-commons-io.jar 在springAnnotation-servlet.xml中配置 1 <!-- 定义文件上传解析器 --> 2 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.Common

spring mvc CommonsMultipartResolver文件上传maxUploadSize限制大小

第一步:配置sping Xml代码   <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--1024*200即200k--> <property name="maxUploadSize" value="204800"/> <

spring test---restful与文件上传

spring提供了大量经常使用的功能測试,如文件上传.restful风格url訪问.以下介绍主要介绍下test中经常使用功能的使用方法: 首先能够静态导入类.方便在測试类中使用,导入的类有 import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; import static org.springframework.test.web.client.response.MockR