1.创建SpringBoot项目
本项目采用springboot + mybatis-plus +jquery +thymeleaf组成
2.项目流程图
3.在pom中添加以下依赖
org.projectlombok
lombok
true
commons-io
commons-io
2.4
commons-fileupload
commons-fileupload
1.3.1
mysql
mysql-connector-java
runtime
com.baomidou
mybatis-plus-boot-starter
3.3.2
4.在application.properties配置文件中
spring.resources.static-locations=classpath:/static
server.port=8000
#设置上传图片的路径
file.basepath=D:/BaiduNetdiskDownload/
# 设置单个文件大小
spring.servlet.multipart.max-file-size= 50MB
# 设置单次请求文件的总大小
spring.servlet.multipart.max-request-size= 50MB
##设置要连接的mysql数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
5.在数据库创建表
create table file
(
id INTEGER primary key AUTO_INCREMENT comment 'id',
path varchar(100) not null COMMENT '相对路径',
name varchar(100) COMMENT '文件名',
suffix varchar(10) COMMENT '文件后缀',
size int COMMENT '文件大小|字节B',
created_at BIGINT(20) COMMENT '文件创建时间',
updated_at bigint(20) COMMENT '文件修改时间',
shard_index int comment '已上传分片',
shard_size int COMMENT '分片大小|B',
shard_total int COMMENT '分片总数',
file_key varchar(100) COMMENT '文件标识'
)
6.创建实体类
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName(value = "file")
public class FileDTO {
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 相对路径
*/
private String path;
/**
* 文件名
*/
private String name;
/**
* 后缀
*/
private String suffix;
/**
* 大小|字节B
*/
private Integer size;
/**
* 创建时间
*/
private Long createdAt;
/**
* 修改时间
*/
private Long updatedAt;
/**
* 已上传分片
*/
private Integer shardIndex;
/**
* 分片大小|B
*/
private Integer shardSize;
/**
* 分片总数
*/
private Integer shardTotal;
/**
* 文件标识
*/
private String fileKey;
}
7.创建mapper
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.upload.entity.FileDTO;
import org.springframework.stereotype.Repository;
@Repository
public interface FileMapper extends BaseMapper {
}
8.创建service
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.demo.upload.dao.Fi