PHP大文件上传断点续传解决方案
2024-09-03 14:18:00
1.使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc)
APC实现方法:
安装APC,参照官方文档安装,可以使用PECL模块安装方法快速简捷,这里不说明
配置php.ini,设置参数 apc.rfc1867=1 ,使APC支持上传进度条功能,在APC源码说明文档里面有说明
代码范例:
大文件(50G)上传的实现细节:
服务端接收文件数据的处理逻辑代码:
2.使用PECL扩展模块uploadprogress实现(http://pecl.php.net/package/uploadprogress)
uploadprogress 模块实现方法:
使用PECL模块安装方法安装该模块
php.ini里面设置 uploadprogress.file.filename_template = “/tmp/upd_%s.txt”
代码范例:
进度的处理逻辑比较简单,只是更新数据库中的数据就行了。不需要做其它的处理。
客户端代码如下:
服务端代码如下:
实现后的效果:
强大的文件夹上传,能够轻松支持10W级别的文件夹上传。
速度还不错
文件支持续传,支持刷新浏览器,关闭浏览器,重启电脑之后仍然能够续传。
理论上可以上传无限大的文件实时显示上传状态、进度支持多文件上传以及与表单混合上传方便的用户调用接口上传进度提供两种显示模式:新窗口或者内嵌式(0.3)多语言支持(0.21)兼容各种浏览器(经过测试的浏览器:IE5.0、IE6.0、Mozilla、Firefox、Opera)支持Mac、Linux。
最新文章
- Redis 发布订阅用法
- 数据库连接池原理 与实现(动脑学院Jack老师课后自己的练习有感)
- git和nginx安装
- 怎样让webservice在浏览器远程浏览时像在本地浏览一样有参数输入框
- lua中pairs和ipairs的区别
- Svn正确的使用方法
- Winform DataGridView添加列头checkbox
- Groovy 数组操作
- onsubmit提交前先验证(验证不通过阻止form提交)
- Selenium在定位的class含有空格的复合类的解决办法整理
- JN_0007:微信昵称设置小数字
- Quartz.NET学习笔记(四) 计划任务触发器
- 我的第一个Angular2应用
- 常用API2 正则表达式
- idea的pom.xml中提示dependency‘’not found
- MySQL多表查询练习题
- Comparable和Comparator接口是干什么的?列出它们的区别。
- .Net jsc.exe 编译js 成exe
- 奇怪的分式|2014年蓝桥杯B组题解析第六题-fishers
- bonjour browser 下载