热门
最新
红包
立Flag
投票
同城
我的
发布
PHP实现大文件断点续传上传下载实例
文件上传是一个很常见的功能,在业务场景中其又可分为单文件上传、分片上传、断点续传、秒传等。
一个小文件上传在一个http连接便可以很快的完成,其无需担心上传失败重新上传的问题。而一个大文件的上传则不能这样,试想一个场景:10G的文件直接上传,如果上传一方的网速很好,服务器的网络带宽很小,那么服务器的带宽全被这个上传连接占用,其他人上传文件则已没有带宽可用;如果在网速较差的环境下上传,快要上传完成的时候网络中断,又得重新上传,一定会抓狂。
那么如何解决大文件的上传呢?此时则需要引入分片上传,可以带来以下优点:
不占用服务器网络带宽:一次上传一个分片,可以很快的完成上传。
断点续传:分片之间是独立的,上传中网络中断后可以直接续传,即上传成功的分片无需再次上传。
那么又如何达到秒传的效果呢?每个文件可以用加密算法生成一个加密值,比如MD5值,一个内容完全相同的文件只要使用同一种加密算法加密得到的值一定相同,在开始分片上传前先拿这个加密值去判断是否有相同的文件即可。
网上搜了很多文章,基本上的方案都是html5,我们之前也是采用的这个方案,局限性有点大,稳定性不够好。不能兼容IE,然后断点续传功能不够完善,用户传文件的时候不能刷新页面,也不能关闭页面,否则文件进度将会丢失。这个对于现在的客户来说有点难以接受,因为用户传的文件比较大,1G到10G都有,可能一次传不完,传一半,第二天再传。
找了几个月,只发现一个产品比较不错:泽优大文件上传控件(up6),除了提供完整的产品代码以外还提供了视频教程,这个确实为我们项目组的推广带来了便利。
示例下载:https://gitee.com/xproer/up6-php/tree/6.5.39/
CSDN App 扫码分享
评论
点赞
打赏
- 复制链接
- 举报