听说微信搜索《Java鱼仔》会变更强哦!
本文收录于JavaStarter ,里面有我完整的Java系列文章,学习或面试都可以看看哦
(一)概述
文件上传下载一直都是一个系统最常用也是最基本的功能点,刚好最近公司的项目上有用到这个功能,于是自己就用SpringBoot也写了一个简化的版本,已实现文件的上传和下载功能。
(二)创建项目
首先创建一个SpringBoot的项目,接着引入相关的依赖,因为涉及到数据库的操作,所以依赖会比较多一些。
2.1 依赖引入
1 | xml复制代码<dependency> |
2.2 接口通用返回类编写
编写一个接口的通用返回体,这个在之前的博客中我专门写过,现在就直接拿来用了:
1 | java复制代码public enum ResponseCode { |
返回体:
1 | java复制代码@Data |
2.3 配置一下解决跨域问题的配置类
在SpringBoot中有多种解决跨域的方法,这里选择其中一种
1 | java复制代码public class WebMvcConfig implements WebMvcConfigurer { |
到这里为止,基本的项目配置就算结束了,接下来就是功能的实现了。
(三)实现文件上传下载
3.1 创建表
首先创建一张表来记录文件的路径、名称、后缀等信息:
1 | java复制代码CREATE TABLE `file` ( |
3.2 编写实体类
写一个文件对象,和数据库中的字段相对应:
1 | java复制代码@Data |
3.3 配置application.properties
在配置文件中将服务端口,数据库连接方式以及文件的保存路径配置一下:
1 | java复制代码server.port=8080 |
3.4 编写Controller
新建一个类叫FileController,用来写接口,文件上传下载接口的代码已经给了注释,Spring中提供了一个MultipartFile类,用来接收前台传过来的文件,这里直接使用即可。
1 | java复制代码@RestController |
所有的业务都写在service中,因此需要有fileService接口以及fileServiceImpl实现类:
1 | java复制代码public interface FileService { |
fileServiceImpl实现类:
1 | java复制代码@Service |
3.5 对数据库的操作
需要将数据写入到数据库中,这里用到的是mybatis,新建一个FileMapper接口:
1 | java复制代码@Mapper |
编写对应的xml文件
1 | xml复制代码<?xml version="1.0" encoding="UTF8" ?> |
代码已上传至github,欢迎自取:github
(四)测试
将项目运行起来,首先测试文件上传,通过postman直接上传一个文件
点击send后得到操作成功的返回值,我们可以在自己设置的路径下看到这个文件,同时在数据库中也存在该文件的信息:
接下来测试文件下载,因为是get请求,直接在浏览器中访问:
http://localhost:8080/api/download/4
即可调用下载。
本文转载自: 掘金