SpringMVC上传文件
文件上传的要求
A、form表单的enctype取值必须是:multipart/form-data B、method属性取值必须是Post C、提供一个文件选择域 <input type="file" />
springmvc上传文件示例
这里只是演示,上传的文件和访问的应用在同一台服务器上。
pom添加依赖
<!--文件上传的依赖-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
创建保存文件的目录
在webapp下创建目录upload,上传的文件放到这个目录下
jsp页面
在webapp下创建upload.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>文件上传</h1>
<form action="/testFileUpload" method="post" enctype="multipart/form-data">
文件:<input type="file" name="uploadFile"/><br/>
<input type="submit" value="上传"/>
</form>
</body>
</html>
web.xml中修改欢迎页
<welcome-file-list>
<welcome-file>upload.jsp</welcome-file>
</welcome-file-list>
控制器
package com.qzcsbj.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
@Controller
public class TestUploadController {
@RequestMapping("/testFileUpload")
public String testFileUpload(MultipartFile uploadFile, HttpServletRequest request) throws Exception {
String fileName = "";
// 获取原始文件名字
String uploadFileName = uploadFile.getOriginalFilename();
// 把文件加上随机数,防止文件重复
String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
fileName = uuid + "_" + uploadFileName;
System.out.println("要上传的文件的名称是:" + fileName);
// 获取上传的路径
String basePath = request.getServletContext().getRealPath("/upload");
System.out.println("basePath:" + basePath);
// 每天一个文件夹
String datePath = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
// 判断路径是否存在
File file = new File(basePath + "/" + datePath);
if (!file.exists()) {
file.mkdirs();
}
// 把上传的文件写到指定位置
File f = new File(file, fileName);
uploadFile.transferTo(f);
System.out.println("文件上传成功,路径为:" +f.getAbsolutePath());
return "success";
}
}
配置文件解析器
springmvc.xml中添加:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为 5MB -->
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>
测试
启动tomcat,选择要上传的文件,点击“上传”

日志

上传成功

访问图片:http://localhost:8080/upload/2023-01-18/47CE4F91ADD84030B77E223FB07951AE_fu.jpg

原文会持续更新,原文地址:https://www.cnblogs.com/uncleyong/p/17058667.html
__EOF__
本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!

浙公网安备 33010602011771号