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

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

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

用户希望能够用的方便,简单,至于用了什么技术到不是特别关心。用户关心的是好用。

最好一句话,一个配置,一段代码就实现了。

版本:6.5.40

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

安装环境

PHP:7.2.14

完美解决PHP无法上传大文件控件_php分块上传

调整块大小

完美解决PHP无法上传大文件控件_php分片上传_02

NOSQL

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

完美解决PHP无法上传大文件控件_php断点续传_03

SQL

创建数据库

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

完美解决PHP无法上传大文件控件_php断点续传_04

 

完美解决PHP无法上传大文件控件_php分割上传_05

配置数据库连接

完美解决PHP无法上传大文件控件_php分块上传_06

6.安装依赖

完美解决PHP无法上传大文件控件_php大文件上传_07

访问页面进行测试

完美解决PHP无法上传大文件控件_php分块上传_08

数据表中的数据

完美解决PHP无法上传大文件控件_php断点续传_09

相关参考:

文件保存位置

php5教程