文件上传步骤
1. 写一个文件上传的页面
2. 写一个文件上传的控制器
注意:
- method="post"
- enctype="multipart/form-data"
3. 文件类型上传组件 type="file"
4. 接收文件参数需要使用 MultipartFile 类型的参数
5. 配置文件解析器, 文件解析器 id 必须是 "multipartResolver"
- <%@ page language="java" contentType="text/html; charset=utf-8"
- pageEncoding="utf-8"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <HTML>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Insert title here</title>
- </head>
- <body>
- <form action="upload.do" method="post" enctype="multipart/form-data">
- 姓名:<input type="text" name="username"><br>
- 头像:<input type="file" name="mf"><br>
- <input type="submit" value="上传">
- </form>
- </body>
- </HTML>
- upload.jsp
- <%@ page language="java" contentType="text/html; charset=utf-8"
- pageEncoding="utf-8"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <HTML>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Insert title here</title>
- </head>
- <body>
- <h1 > 欢迎进入 </h1>
- <img alt="程序猿" src="${imgPath }">
- </body>
- </HTML>
- show.jsp
- package com.xcz.controller;
- import java.io.File;
- import java.io.IOException;
- import javax.servlet.http.HttpServletRequest;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.Web.multipart.MultipartFile;
- @Controller
- public class UploadController {
- @RequestMapping("/toUpload.do")
- public String toUpload() {
- return "upload";
- }
- @RequestMapping("/upload.do")
- public String upload(String username, MultipartFile mf, HttpServletRequest request) {
- String path = request.getServletContext().getRealPath("images");
- String orname = mf.getOriginalFilename();
- String fileName = System.currentTimeMillis() + orname.substring(orname.lastIndexOf("."));
- String filePath = path + "/" + fileName;
- File file = new File(filePath);
- try {
- mf.transferTo(file);
- request.setAttribute("imgPath", "images/" + fileName);
- } catch (IOException e) {
- e.printStackTrace();
- }
- return "show";
- }
- }
- UploadController
- <?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:lang="http://www.springframework.org/schema/lang"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xmlns:util="http://www.springframework.org/schema/util"
- xmlns:task="http://www.springframework.org/schema/task"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
- http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
- http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-4.1.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd">
- <!-- 开启组件扫描 -->
- <context:component-scan base-package="com.xcz"></context:component-scan>
- <!-- 开启 mvc 标注 -->
- <mvc:annotation-driven></mvc:annotation-driven>
- <!-- 配置视图处理器 -->
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/WEB-INF/"></property>
- <property name="suffix" value=".jsp"></property>
- </bean>
- <!-- 配置一个文件解析器 -->
- <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
- <property name="maxUploadSize" value="102400"></property>
- <property name="resolveLazily" value="true"></property>
- </bean>
- <!-- 引入外部 db.properties -->
- <context:property-placeholder location="classpath:db.properties"/>
- <!-- 配置数据源 -->
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
- <property name="driverClassName" value="${driverClassName}"></property>
- <property name="url" value="${url}"></property>
- <property name="username" value="${jdbc.username}"></property>
- <property name="password" value="${jdbc.password}"></property>
- </bean>
- </beans>
mvc.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <Web-App xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
- version="3.1">
- <display-name>SpringMVC-06</display-name>
- <welcome-file-list>
- <welcome-file>index.HTML</welcome-file>
- <welcome-file>index.htm</welcome-file>
- <welcome-file>index.jsp</welcome-file>
- <welcome-file>default.HTML</welcome-file>
- <welcome-file>default.htm</welcome-file>
- <welcome-file>default.jsp</welcome-file>
- </welcome-file-list>
- <!-- 配置请求入口 -->
- <servlet>
- <servlet-name>SpringMVC</servlet-name>
- <servlet-class>org.springframework.Web.servlet.DispatcherServlet</servlet-class>
- <!-- 配置初始化参数 -->
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:mvc.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>SpringMVC</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping>
- <!-- 配置编码过滤器 -->
- <filter>
- <filter-name>filterEncoding</filter-name>
- <filter-class>org.springframework.Web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>utf-8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>filterEncoding</filter-name>
- <url-pattern>*.do</url-pattern>
- </filter-mapping>
- </Web-App>
Web.xml
来源: http://www.bubuko.com/infodetail-2843628.html