【前后台完整版】大文件分片上传

【前后台完整版】大文件分片上传,大文件分片上传解决方案,大文件分片上传思路,大文件分片上传源码,大文件分片上传实例,大文件分块上传,大文件加密上传,大文件批量上传,大文件断点续传,文件夹上传,

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

客户要求能够支持大文件下载,断点续传,批量下载,文件夹下载,文件夹下载要支持文件夹的层级结构,也就是用户上传的文件夹是什么层级结构,下载下来也必须是这个层级结构,项目一期我们是采用的打包的方式,直接在服务器上面把文件夹打成一个压缩文件RAR,这样下载下来后解压,文件夹层级结构是一致的。

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

对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传

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

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

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

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

当接收到文件块后就可以直接写入到服务器的文件中。

版本:6.5.40

代码:up6-php: Web大文件上传-php示例 - Gitee.com

安装环境

PHP:7.2.14

调整块大小

NOSQL

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

SQL

创建数据库

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

 

配置数据库连接

6.安装依赖

  

访问页面进行测试

   

  数据表中的数据

  

相关参考:

文件保存位置

php5教程

源码工程文档:泽优上传下载-源码版-工程文档.pdf

源码报价单:泽优上传下载-源码版-2024.pdf

OEM版报价单:泽优上传下载-OEM版-2024.pdf

产品源代码:up6-code.zip

授权生成器:up6-lic-app.zip

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值