PHP上传整个文件夹
最近项目有个需求,需要实现大文件,文件夹的上传和*载下**,断点续传,文件MD5校验,秒传,加密传输(要求支持国密SM4),加密存储,压缩传输(ZIP,GZIP)功能。后端语言用的是php
这是一个政府项目,因为国家信息安全的原因,现在要求所有政府项目必须支持信创国产化环境:国产操作系统,国产数据库,国产浏览器。客户单位那边有些机器用的是Windows 7+IE8,也需要兼容。
网上搜了很多文章,基本上的方案都是vue+html5,我们之前也是采用的这个方案,局限性有点大。上传的文件数据容易出错,效率也比较低,用户上传的文件稍微大一点的话浏览器容易卡顿和崩溃,不能兼容IE,然后断点续传功能不够完善,用户传文件的时候不能刷新页面,也不能关闭页面,否则文件进度将会丢失。这个对于现在的客户来说有点难以接受,因为用户传的文件比较大,1G到10G都有,可能一次传不完,传一半,第二天再传。
找了几个月,只发现一个产品比较不错:泽优大文件上传控件(up6),不仅提供了产品源码还提供了视频教程,项目组这边整合很快,基本上没花什么时间。直接把他们的代码复制过来就能用了。
我们的需求实际上很简单,第一就是希望使用简单,不管是对开发人员,还是对最终用户都要使用简单。对开发人员来说要集成和整合简单,能够提供前端和后端 API,前端API使用和调用要方便。
对于普通用户,要使用简单学习成本低。基本上用户一看就会使用,不需要进行使用培训。如果是插件的话需要提供好的安装引导,用户直接下一步下一步就完事。
第二点就是稳定可靠,用户是政府用户,对稳定性要求比较高。用户单位那边每天上传的文件比较多数量达到几百万,总尺寸是约100G左右。
第三点就是能够提供长期技术支持,政府项目周期都比较长,而且中途可能会发生业务变更的需求,还有定制化的需求,所以也要求厂商能够提供协助,要求提供手机或者微信。
除了这些还有一点就是*载下**功能需要也支持断点续传。用户那边每天都会从系统中*载下**文件,大的有10G,小的可能几KB,需要批量*载下**。
上面的几点能够满足的话基本上就没有什么问题,领导这边希望提供控件源代码的采购方式,有些政府大客户要求源代码审查,我们有自己的产品,领导希望集成到产品中,这样就能够为所有用户提供这个功能,用户体验也能够统一。后面我们自己维护起来也方便。
示例*载下**:













