吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4230|回复: 47
收起左侧

[Java 原创] Java文件上传之断点续传实现(包含单文件、多文件、大文件、文件秒传、图片上传)

  [复制链接]
zyt温柔发 发表于 2023-4-23 09:34
本帖最后由 zyt温柔发 于 2023-4-23 09:37 编辑

1.思路解析:
  思路是为了解决实际业务中大文件上传,中途网络中断和充分利用多请求,加速上传,保存上传记录。
  针对上述问题,我们采用将大文件进行拆分,拆分成若干个临时小文件,进行上传。每个临时文件进行记录。有了这个思路,那么在上传若干个临时文件时,就需要进行告知服务端,本次上传的大文件基本信息,本实例采用前后端分离实现。
2.具体步骤:
  1、前端引入插件file-md5.js(md5算法生成文件序列)和plupload(文件上传)
  2、将文件分片并通过md5算法生成分片文件的唯一标识
  3、按分片上传文件,后端接收文件名(name)、md5序列号(md5)、文件大小(size)、分片总数(chunks)、当前分片序列号(chunk)、文件二进制(file)
  4、通过分片总数和md5序列号获取文件名并初始化内部类记录分块上传文件信息map,根据MD5序列号记录上传文件名、并根据uuid生成分块文件名
  5、分块写入文件(通过RandomAccessFile)
  6、为文件添加上传分块记录(status设置为true)
  7、判断文件所有分块是否已上传(根据status的状态值)
  8、删除key
  9、将上传文件记录到数据库
3.Git地址:
                   https://github.com/gaoyuyue/MyUploader-Backend.git

免费评分

参与人数 9吾爱币 +8 热心值 +8 收起 理由
lechao + 1 谢谢@Thanks!
xiaoyuzhou2022 + 1 + 1 谢谢@Thanks!
reagen + 1 + 1 我很赞同!
heimaojingzhang + 1 + 1 谢谢@Thanks!
nianxinzhuo233 + 1 + 1 我很赞同!
ErrorInfo + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
0qxqy0 + 1 + 1 我很赞同!
DebugBiu + 1 + 1 我很赞同!
soenluzy + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

超鑫戏 发表于 2023-12-5 11:19
战之都 发表于 2023-12-4 15:06
感谢回复, 我就是没理解 “当前”  是哪个目录, 是Application配置文件的同级目录吗 还是哪里

你放在哪  在哪打开他的  他就在那个路径下;如果使用的是linux  可以用pwd查看当前目录;如,你在C:\App\Lpg下打开它  那么它的路径就是C:\App\Lpg\upload  ;有空你可以去看看相对地址和绝对地址
 楼主| zyt温柔发 发表于 2023-5-5 11:34
hanbazhen 发表于 2023-5-5 02:30
这个是怎么用的?没看到下载链接额

git拉取代码,然后修改配置文件为自己的环境配置,最后启动就行了,前端我用的vscode工具,后端用的idea,mysql导入数据文件用于存储文件信息
流泪的小白 发表于 2023-4-23 09:45
chensheng 发表于 2023-4-23 10:00
正好有需要
chanwei 发表于 2023-4-23 10:06
感谢分享
Pojawa 发表于 2023-4-23 10:32
看看,路过学习一下
attar 发表于 2023-4-23 10:34
谢谢分享,学习学习。
zaochuilao124 发表于 2023-4-23 10:40
感谢分享,先码后看。
rhci 发表于 2023-4-23 11:33
感谢分享,先收藏了。
felixqc 发表于 2023-4-24 11:17
感谢分享,正好用的上
xx1235x 发表于 2023-4-24 16:17
谢谢分享,学习学习。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 20:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表