上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个 Spring Boot 上传文件的小案例 。
1、pom 包配置我们使用 Spring Boot 版本 2.1.0、jdk 1.8、tomcat 8.0 。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
引入了
spring-boot-starter-thymeleaf做页面模板引擎,写一些简单的上传示例 。
2、启动类设置@SpringBootApplication
public class FileUploadWebApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(FileUploadWebApplication.class, args);
}
@Bean
public TomcatServletWebServerFactory tomcatEmbedded() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
//-1 means unlimited
((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
}
});
return tomcat;
}
}
tomcatEmbedded 这段代码是为了解决,上传文件大于10M出现连接重置的问题 。此异常内容 GlobalException 也捕获不到 。
详细内容参考:Tomcat large file upload connection reset
3、编写前端页面上传页面
<!DOCTYPE html>
<html xmlns:th=”http://www.thymeleaf.org”>
<body>
<h1>Spring Boot file upload example</h1>
<form method=”POST” action=”/upload” enctype=”multipart/form-data”>
<input type=”file” name=”file” /><br/><br/>
<input type=”submit” value=https://www.jinnalai.com/fenxiang/”Submit” />
</form>
</body>
</html>
非常简单的一个 Post 请求,一个选择框选择文件,一个提交按钮,效果如下:
上传结果展示页面:
<!DOCTYPE html>
<html lang=”en” xmlns:th=”http://www.thymeleaf.org”>
<body>
<h1>Spring Boot – Upload Status</h1>
<div th:if=”${message}”>
<h2 th:text=”${message}”/>
</div>
</body>
</html>
效果图如下:
4、编写上传控制类访问 localhost 自动跳转到上传页面:
@GetMapping(“/”)
public String index() {
return “upload”;
}
上传业务处理
推荐阅读
- macbook显示隐藏文件步骤 mac怎么显示隐藏文件夹
- 教你crontab定时执行shell脚本 crontab安装配置文件
- mxf文件剪辑软件介绍 mxf格式用什么播放器可以打开
- 将图片转换为pdf文件 pdf文件转换器word免费软件
- word文档图标是白纸形式 word文件图标变白修复
- javarandom函数用法 java随机函数怎么写
- 实现两个字符串的比较 两个字符串比较是否相等
- win10共享找不到网络路径 共享文件夹打不开怎么办
- 电脑丢失dll文件一键修复方法 dll之家怎么用
- java零基础自学 javascript教程推荐