PHP大文件分块上传的类库插件 [ 2.0 版本 ]
前端Javascript+Html5+后端PHP分块上传文件,PHP分块上传大文件
该项目可以正常运行,入口为index.html,需要正确配置fileDir的读写权限
项目地址
https://github.com/1107012776/php-shard-upload
安装
composer require lys/php-shard-upload
注意
该包必须通过composer2+ 安装
您可以使用composer self-update --2迁移到它。如果遇到问题,您可以随时使用 返回composer self-update --1
环境
必须配置上传允许数据流大于2M 在php.ini里面或者nginx里面配置
1.实现断点续传,已上传过的块,前端直接过滤掉,无需继续传到后端,加速上传效率,减少带宽
2.实现快速上传,即之前上传过,该文件已经存在的,很快就能上传成功,其原理就是文件md5+文件sha1的判断
具体可以看如下地址:
https://github.com/1107012776/php-shard-upload/blob/master/README.md
依然
注册时间:2018-01-27
最后登录:2024-11-17
在线时长:27小时52分
最后登录:2024-11-17
在线时长:27小时52分
- 粉丝2
- 金钱2230
- 威望30
- 积分2800
共 1 条评论
看看。希望可用
可以用的,我自己有测试过
1.利用前端的遍历(轮询)请求来合并上传的分块
2.在合并的时候又使用文件锁,防止并发合并
合并失败分二种情况:
一种是数据合并异常,合并到某个块突然断开,则接下来合并接着上一个块进行合并,并没有删除游标文件和临时合并文件
另一种,一般是程序进程突然被杀死导致,数据流写一半到临时文件(该种情况只是猜测有这种可能),则会删除游标和合并的临时文件,重新进行合并
3.前端使用两个加密hash使上传的文件获取唯一标识,防止文件刚好一种加密hash重复的问题
4.目前试过上传1.5G左右的没有发现问题(未试过更大的文件),更大的文件理论上是没有问题
5.下载的类库也包含在该库里面,支持断点下载,支持下载1.5G左右的文件(未试过更大的文件),更大的文件理论上是没有问题
6.无需使用flash,flash都淘汰了