文件上传与下载是Web应用开发中常用的功能之一。接下来我们将讨论如何在Spring Boot的Web应用开发中,如何实现文件的上传与下载,感兴趣的可以了解一下
前言
文件上传与下载是Web应用开发中常用的功能之一,在实际的Web应用开发中,为了成功上传文件,必须将表单的method设置为post,并将enctype设置为multipart/form-data 只有这样设置,浏览器才能将所选文件的二进制数据发送给服务器
从Servlet3.0开始,就提供了处理文件上传的方法,但这种文件上传需要在Java Servlet中完成,而Spring MVC提供了更简单的封装。Spring MVC是通过Apache Commons FileUpload技术实现一个MultipartResolver的实现类CommonsMultipartResovler完成文件上传的。因此,Spring MVC的文件上传需要依赖Apache Commons FileUpload组件
Spring MVC将上传文件自动绑定到MultipartFile对象中,MultipartFile提供了获取上传文件内容,文件名等方法。并通过transferTo方法将文件上传到服务器的磁盘中,MultipartFile常用方法如下
byte[]getBytes() 获取文件数据
String getContentType() 获取文件MIME类型
InputStream getInputStream() 获取表单中文件组件的名字
String getName() 获取表单中文件组件的名字
String getOriginalFilename() 获取上传文件的原名
long getSize() 获取文件的字节大小
boolean isEmpty() 是否有选择上传文件
void transferTo() 将上传文件保存到一个目标文件中
Spring Boot的spring-boot-starter-web已经集成了Spring MVC 所以使用Spring Boot实现文件上传更加敏捷,只需引入Apache Commons FileUpload组件依赖即可
下面通过一个实例来加深理解
操作步骤如下
1、引入Apache Commons FileUpload组件依赖
在Web应用的ch5_2的pom.xml文件中 添加Apache Commons FileUpload组件依赖 代码如下
2、设置上传文件大小限制
在Web应用的ch5_2的配置文件application。properties中 添加如下配置限制上传文件大小
server.servlet.context-path=/ch5_2
#上传文件时,默认单个上传文件大小是1MB,max-file-size设置单个上传文件大小
spring.servlet.multipart.max-file-size=50MB
#默认总文件大小是10MB,max-request-size设置总上传文件大小
spring.servlet.multipart.max-request-size=500MB
3、创建选择文件视图页面
在ch5_2应用的src/main/resources/templates目录下 创建选择文件视图页面uploadFile.html 该页面中有一个enctype属性值为multipart/form-data的form表单 部分代码如下
4、创建控制器
在ch5_2应用的com.ch.ch5_2.controller包中 创建控制器类TestFileUpload 在该类中有4个处理方法一个是界面导航方法,uploadfile 一个是实现文件上传的upload方法,一个是显示将要被下载文件的showDownLoad 方法,一个是实现下载功能的download方法 部分代码如下
5、创建文件下载视图页面
创建视图页面showFile.html
同样运行Ch52Application主类 然后访问http://localhost:8080/ch5_2/uploadFile
效果如下
点击选择文件后弹出如下弹窗
假如没有上传文件 点击上传文件以后如下
到此这篇关于SpringBoot文件上传与下载功能实现详解的文章就介绍到这了,更多相关SpringBoot文件上传与下载内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!