java 实现文件秒传_SpringBoot 中大文件(分片上传)断点续传与极速秒传功能的实现...

本文介绍了如何在SpringBoot项目中实现大文件的分片上传、断点续传和秒传功能。通过添加相关依赖、配置文件设置、数据库表设计、实体类和服务实现,详细讲解了整个流程。利用文件标识进行秒传检查,如果文件已存在则更新,否则保存新的分片信息。此外,还提供了前端页面和上传函数的实现,以完成文件的前端分片和上传操作。
摘要由CSDN通过智能技术生成

1.创建SpringBoot项目

本项目采用springboot + mybatis-plus +jquery +thymeleaf组成

2.项目流程图

2d7d2f749d962a3654bd87141e3a8843.png

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值