网站首页 > 技术文章 正文
【前后台完整版】大文件分片上传,大文件分片上传解决方案,大文件分片上传思路,大文件分片上传源码,大文件分片上传实例,大文件分块上传,大文件加密上传,大文件批量上传,大文件断点续传,文件夹上传,
前端用了HTML,VUE2,VUE3,后端用了PHP,ThinkPHP,服务器用了Linux,数据库是MySQL,上传组件用的是百度的WebUploader,初期还是能用,但是下载这块的话就不是很好用了,不太能满足客户的需求,
客户要求能够支持大文件下载,断点续传,批量下载,文件夹下载,文件夹下载要支持文件夹的层级结构,也就是用户上传的文件夹是什么层级结构,下载下来也必须是这个层级结构,项目一期我们是采用的打包的方式,直接在服务器上面把文件夹打成一个压缩文件RAR,这样下载下来后解压,文件夹层级结构是一致的。
但是后来遇到一个问题,用户上传了一个文件夹,里面包含了1万个文件,文件有大有小,大的有1G,10G,小的有几KB,或者几MB,将这个文件夹在服务器打包后变成了一个500G的文件。然后用户下载这个文件的时候就崩溃了,用的是谷歌chrome,但是还是崩。
对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传
从上传的效率来看,利用多线程并发上传能够达到最大效率。
断点续传,就是在文件上传的过程中发生了中断,人为因素(暂停)或者不可抗力(断网或者网络差)导致了文件上传到一半失败了。然后在环境恢复的时候,重新上传该文件,而不至于是从新开始上传的。
断点续传的功能是基于分块上传来实现的,把一个大文件分成很多个小块,服务端能够把每个上传成功的分块都落地下来,客户端在上传文件开始时调用接口快速验证,条件选择跳过某个分块。
实现原理,就是在每个文件上传前,就获取到文件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
- 上一篇: js获取上传文件类型以及大小的方法
- 下一篇: AspNetCore中的文件上传与下载优化
猜你喜欢
- 2025-06-15 Nodejs文件上传、监听上传进度(node监听文件变化)
- 2025-06-15 Express 文件上传不迷路:req.files 一次性讲明白
- 2025-06-15 JAVA大文件上传,大文件下载解决方案
- 2025-06-15 深入掌握 OSS:最完美的 OSS 上传方案!
- 2025-06-15 AspNetCore中的文件上传与下载优化
- 2025-06-15 js获取上传文件类型以及大小的方法
- 2024-10-04 JAVAWEB 文件上传及下载 java文件的上传和下载
- 2024-10-04 用JAVA实现大文件上传及显示进度信息
- 2024-10-04 常用JSP文件上传,下载的一些方法 常用jsp文件上传,下载的一些方法叫什么
- 2024-10-04 如何实现大文件上传、断点续传、切片上传
你 发表评论:
欢迎- 523℃Oracle分析函数之Lag和Lead()使用
- 520℃几个Oracle空值处理函数 oracle处理null值的函数
- 518℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 505℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 502℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 493℃【数据统计分析】详解Oracle分组函数之CUBE
- 472℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 472℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端排序 (47)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)