首页 » SEO优化 » php分片上传组件技巧_前后台完整版大年夜文件分片上传

php分片上传组件技巧_前后台完整版大年夜文件分片上传

访客 2024-12-10 0

扫一扫用手机浏览

文章目录 [+]

前端用了HTML,VUE2,VUE3,后端用了PHP,ThinkPHP,做事器用了Linux,数据库是MySQL,上传组件用的是百度的WebUploader,初期还是能用,但是下载这块的话就不是很好用了,不太能知足客户的需求,

客户哀求能够支持大文件下载,断点续传,批量下载,文件夹下载,文件夹下载要支持文件夹的层级构造,也便是用户上传的文件夹是什么层级构造,下载下来也必须是这个层级构造,项目一期我们是采取的打包的办法,直接在做事器上面把文件夹打成一个压缩文件RAR,这样下载下来后解压,文件夹层级构造是同等的。

php分片上传组件技巧_前后台完整版大年夜文件分片上传

但是后来碰着一个问题,用户上传了一个文件夹,里面包含了1万个文件,文件有大有小,大的有1G,10G,小的有几KB,或者几MB,将这个文件夹在做事器打包后变成了一个500G的文件。
然后用户下载这个文件的时候就崩溃了,用的是谷歌chrome,但是还是崩。

php分片上传组件技巧_前后台完整版大年夜文件分片上传
(图片来自网络侵删)

对付大文件的处理,无论是用户端还是做事端,如果一次性进行读取发送、吸收都是不可取,很随意马虎导致内请安题。
以是对付大文件上传,采取切块分段上传

从上传的效率来看,利用多线程并发上传能够达到最大效率。

断点续传,便是在文件上传的过程中发生了中断,人为成分(停息)或者不可抗力(断网或者网络差)导致了文件上传到一半失落败了。
然后在环境规复的时候,重新上传该文件,而不至于是重新开始上传的。

断点续传的功能是基于分块上传来实现的,把一个大文件分成很多个小块,做事端能够把每个上传成功的分块都落地下来,客户端在上传文件开始时调用接口快速验证,条件选择跳过某个分块。

实现事理,便是在每个文件上传前,就获取到文件MD5取值,在上传文件前调用接口,如果获取的文件状态是未完成,则返回所有的还没上传的分块的编号,然后前端进行条件筛算出哪些没上传的分块,然后进行上传。

当吸收到文件块后就可以直接写入到做事器的文件中。

版本:6.5.40

代码:https://gitee.com/xproer/up6-php/tree/6.5.40/

安装环境

PHP:7.2.14

调度块大小

NOSQL

NOSQL不须要任何配置,可以直接访问测试

SQL

创建数据库

您可以直接复制脚本进行创建

配置数据库连接

6.安装依赖

访问页面进行测试

数据表中的数据

干系参考:

文件保存位置

php5教程,

源码工程文档:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

源码报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl

OEM版报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a

产品源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

授权天生器:https://drive.weixin.qq.com/s?k=ACoAYgezAAw0P06owX

标签:

相关文章