Java SpringBoot开发教程之web开发文件上传功能
在前端开发过程中经常遇到需要实现文件上传功能的情况,但是在SpringBoot中却又没有提供专门文件上传的技术,而是需要依赖SpringMVC的文件上传技术,今天小千就来教大家如何去实现它。
MultipartFile简介
在SpringMVC时代,提供了MultipartFile这个封装类,它包含了文件的二进制流和文件相关属性(文件名、大小等),而在Spring Boot中也是使用此封装类进行文件上传的.
MultipartFile是个接口,它的实现类有CommonsMultipartFile和StandardMultipartFile,这里简单说明:
1. CommonsMultipartFile: 是基于apache fileupload的解析;
2.StandardMultipartFile: 是基于j2ee自带的文件上传进行解析,也就是使用Servlet3.0提供的javax.servlet.http.Part上传方式.
我们在正常使用MultipartFile时,无需关心底层是以哪种方式进行文件上传处理的,SpringMVC会给我们做相应的转换.
注意:
要想实现文件上传,必须将表单的method设置为post,并将enctype设置为multipart/form-data.只有这样,浏览器才会把用户所选择文件的二进制数据发送给服务器.SpringMVC在文件上传时,会将上传的文件映射为MultipartFile对象,并对MultipartFile对象进行文件的解析和保存
使用SpringBoot上传单个文件
1.在原有项目中创建一个新的module
2.改造pom.xml文件,添加相关依赖包
3. 编写文件上传页面picUpload.html
在resource/templates目录下,创建一个文件上传页面。
4. 配置application.properties
在resources目录下,创建一个application.properties配置文件,并设置相关配置属性。
5. 创建信息提示类Message
创建项目包,在包里创建一个JavaBean,用于对外展示信息。
6. 创建文件上传的UploadController类
7. 应用程序入口类
8. 运行程序,实现文件上传
我们接下来启动程序,访问文件上传界面,选择文件进行上传,可以看到如下效果,说明文件上传成功。
9. 整个工程目录结构
使用SpringBoot上传多个文件
我们有时候需要同时上传多个文件,那么如何实现呢?
1. 创建多文件上传的html页面
我们首先创建一个多文件上传的html页面multiUpload.html。
2. 创建一个多文件上传的方法
要实现多文件上传,可以在上面的controller中添加一个新的接口方法.
3. 多文件上传验证
学习java开发,可以参考千锋Java培训班提供的java学习路线,该学习路线罗列了各阶段完整的java学习知识,根据千锋Java培训机构提供的java学习路线图,可以让你对学好java开发需要掌握的知识有个清晰的了解,并能快速入门java开发。想要获取免费的Java学习资料和学习路线图可以添加我们的Java技术交流qq群:858309610 加群找管理领取即可,有Java相关的问题也可以加群大家一起讨论解决,等你来哦~~
猜你喜欢LIKE
相关推荐HOT
更多>>java两个日期比较相差多少天
在Java中,可以使用`java.time`包下的类来比较两个日期之间相差的天数。以下是一个示例代码:importjava.time.LocalDate;importjava.time.tempo...详情>>
2023-06-27 17:19:00find命令查找文件
"find"命令是在Unix、Linux和类似系统中使用的一个非常强大的命令,用于在文件系统中查找文件和目录。它可以根据各种条件进行搜索,并提供了灵...详情>>
2023-06-16 14:00:30如何添加Java环境变量
要添加Java环境变量,请按照以下步骤进行操作:1.打开计算机的控制面板。2.点击"系统和安全"(Windows10及更高版本)或"系统"(Windows7和较早版本...详情>>
2023-06-08 09:31:10随机函数rand怎么使用
rand是一个C++的函数,用于产生一个随机数。以下是使用rand的方法:1.头文件:需要包含stdlib.h或cstdlib头文件以使用rand函数。2.使用rand()函...详情>>
2023-04-20 15:47:10什么是面向对象编程?面向对象有什么特性
面向对象编程(Object-Oriented Programming,OOP)是一种常用的编程范式,它将数据和操作数据的方法组合成一个单独的实体,称为“对象”,并且对...详情>>
2023-03-17 15:30:11Java培训问答更多>>
新Java行业疑惑解答:Java的内存管理是如何工作的?
新java script是什么?为什么要学java script
新java和大数据哪个好?未来哪个职业发展更好
新java培训班多久能学会?培训周期大概多久
新java script和java的区别有哪些?如何区分
新java script的数据类型主要有哪些?怎样学的更快
新c语言与java区别在哪里?去培训机构学哪个比较好
Java面试题库 更多>>
华为外包java面试题-Java实现单链表的逆序
Java程序员面试题
Java面试题及答案
什么是线程的上下文切换?
如何撤销已经推送(push)到远端仓库的提交(commit)信息?
你了解哪些加密算法?
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区