SpringMVC 获得请求数据 -- 文件上传(单/多文件上传)
Posted Z && Y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC 获得请求数据 -- 文件上传(单/多文件上传)相关的知识,希望对你有一定的参考价值。
1. 文件上传
1.1 文件上传客户端三要素
1.2 文件上传原理
1.3 单文件上传步骤
1.3.1 导入fileupload和io坐标
pom.xml
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.3</version>
</dependency>
1.3.2 配置文件上传解析器
spring-mvc.xml
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--上传文件总大小-->
<property name="maxUploadSize" value="5242800"/>
<!--上传单个文件的大小-->
<property name="maxUploadSizePerFile" value="5242800"/>
<!--上传文件的编码类型-->
<property name="defaultEncoding" value="UTF-8"/>
</bean>
1.3.3 编写文件上传代码
UserController.java
package com.tian.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
@Controller // 把UserController托管给Spring IoC容器
@RequestMapping(value = "/user") // 如果只有value属性,可以省略value
public class UserController {
@ResponseBody // 不会进行页面跳转
@RequestMapping(value = "/uploadSingleFile")
public void uploadSingleFile(String username, MultipartFile uploadFile) throws IOException {
System.out.println("上传用户:" + username);
//获得上传文件的名称
String originalFilename = uploadFile.getOriginalFilename();
uploadFile.transferTo(new File("D:\\\\upload\\\\" + originalFilename));
}
}
1.3.4 编写测试页面
upload.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/user/uploadSingleFile" method="post" enctype="multipart/form-data">
上传用户:<input type="text" name="username"><br/>
上传文件:<input type="file" name="uploadFile"><br/>
<input type="submit" value="提交">
</form>
</body>
</html>
1.3.5 说明
1.3.6 开始测试
运行结果:
1.4 多文件上传实现方式一(不推荐:代码冗余 配置繁琐)
说明:前面的步骤和单文件上传相同。
第一步:
第二步:
1.5 多文件上传方式二(推荐)
说明:前面的步骤和单文件上传相同。
第一步:
第二步:
以上是关于SpringMVC 获得请求数据 -- 文件上传(单/多文件上传)的主要内容,如果未能解决你的问题,请参考以下文章
springMVC之文件上传id固定multipartResolver
springMVC实现 MultipartFile 多文件上传,StandardMultipartHttpServletRequest上传文件,在请求中上传文件,比如上传图片
springMVC + hadoop + httpclient 文件上传请求直接写入hdfs
SpringMVC 获得请求数据 -- 获得Servlet相关API获得请求头(@RequestHeader@CookieValue)