PHP+大文件上传

前端:vue2,vue3,vue-cli,html5,jquery,webuploader
后端:php
服务器:linux,centos
功能:分片,断点续传,加密传输,加密存储
昨天晚上一个网友给我发私信聊了一下这个需求,他也是最近在项目上遇到这个需求,但是之前没做过这块,技术积累不够,网上搜了一下大部分用的是HTML5,但是他们之前用过说是稳定性不是特别好。而且没有批量下载功能,只有打包下载,所以咨询这边有没有别的方案。
包教会,免费提供培训服务,免费帮助我们公司技术人员培训,学会如何使用和维护,包括二次开发。免费提供视频教程,免费提供开发文档。免费提供724小时技术支持,免费提供电话支持,免费提供微信支持,免费提供远程协助支持,免费提供QQ支持,完全开放产品源代码,源代码包含前端,后端,控件源代码,并且支持信创国产化环境,包含国产操作系统,国产数据库。完全满足企业100%自主安全可控需求,也就是说我们企业能够自主编译源代码,自主开发,自主部署。并且支持业务逻辑定制开发服务,也就是说如果我们公司有业务定制开发服务,也必须免费提供开发服务,还需要免费提供远程代码调试服务。
不开玩笑啊,这几点都是要写到合同里面的,比如提供产品完整源代码,提供7
24小时上门服务,这几点都必须要写到合同里面的,这个是公司这边强调的,不管你提供的是免费的还是开源的,只要你提供了,那么后面我们公司出了问题,都得找你。主打的就是一个真实服务。
这里给大家分享一个好消息,公司昨天开会讨论了一下关于开源的问题,之前有很多网友都向我们反馈了这个问题,基本上很多网友都提到了产品源代码的需求,有的本身就是软件公司,然后自己就有这个需求,有的是做政府项目的,然后客户那边有这个需求。所以昨天下午公司专门开会讨论了这个问题,最终决定开源。所有网友,任何人都能够免费下载产品源码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwnB0Dk9D
后端PHP5,PHP6,PHP7,PHP8,ThinkPHP,主要是考虑兼容性,用户的系统是之前用PHP5开发的,已经用了很多年了,系统也很稳定,没出现太大的问题。所以用户考虑的是仅针对旧的系统做升级改造工作,而不是重写,一是没必要,二是成本太高意义不大。
客户是武汉的一家广告公司,主要做广告设计,公司开发部这边用的技术是PHP,主要就是后端,客户提了这个需求,需要支持大文件的上传和下载,他们经常是要传很多资料。
也是一个之前的项目,主要就是升级改造工作,后端是PHP,数据库是MySQL,文件的一些信息是需要保存在数据库中的,用户后面会搜索一些信息。
之前在网上也搜索过相关的资料,在论坛里面也与网友交流过,但是都不太令人满意。网上基本上都是讲原理的,基本上所有的文章都在讲如何调用HTML5的API,也不是说这个方案不能用,关键是这个方案的兼容性不行,也没办法进行扩展,并且也没有源代码,想进行一些定制开发也不行,限制性太大了。
webuploader的组件公司研发部的同事也调研过,研究过他的实现,实际上他就是对Flash和HTML5进行了一个封装,本质还是调的HTML5的API,兼容性不是特别好。可扩展性也比较差,可维护性就更不用说了,之前公司项目遇到过坑,到现在连webuploader开发人员都联系不上。想找他们寻求一点技术支持的帮助,真的是想都不要想。公司这一块也愿意付费,就是付费寻求的技术支持,也不行。这一点真的让哥几个给整郁闷了。领导也不太满意,所以还是找有技术支持的产品。研发部的同事称这些项目是免费坑人项目。
服务器支持Linux,Windows,macOS,CentOS,中标麒麟,银河麒麟,统信,龙芯,华为鲲鹏,这个主要也是考虑信创国产化的需求,现在政府这边已经下了相关的文件和规定了,后面的项目是必须要支持信创国产化的,不然是不能投标的。
数据库支持MySQL,达梦数据库,人大金仓,必须要支持信创国产化,特别是在金融比如银行,然后就是电力部门,这部分的企业基本上都有这个要求,服务器是国产的,用户端的话有些Windows,但是大部分都换成了国产化的系统了。
需要提供前端源码,后端源码,控件源码。控件源码也是必须要支持国产化的,这个客户提了这个需求,一期可以先不用,但是后面的话是有这个需求的。
需要提供7*24小时技术支持,长期技术支持,长期维护服务
需要提供手机,QQ,微信,企业微信,电子邮箱等联系方式
需要支持包含IE在内的全部浏览器,用户办公电脑有win7的+IE8的,这个也必须要支持。
终端需要支持Windows,macOS,Linux,信创国产化环境,中标麒麟,银河麒麟,统信UOS,龙芯,华为
功能需要支持10G,50G,100G大文件上传和断点续传,刷新续传,重启续传,客户传的数据量比较大,虽然平时办公时不是每次都传这么大,但是一周的话会有几次,一次传一个文件夹,一个文件夹包含1万到3万个文件,每个文件大概1G到2G左右,所以用户对稳定性要求比较高。
支持超大文件分片,分段,分块,分割上传下载,断点续传
支持文件夹上传,下载断点续传,支持文件夹层级结构,层级结构信息保存到数据库,下载的时候同样保留层级结构
支持加密上传,下载加密,端到端加密,国密SM4加密算法,数据加密传输,传输过程中要保证数据是加密的。
PHP如何上传超大文件,文件/大文件上传功能实现(JS+PHP)全过程,PHP实现浏览器端大文件分片上传,PHP结合WEBUPLOADER断点续传的实现,PHP 大文件上传解决方案(500M以上),PHP大文件上传(切片)分享,HTML+PHP超大视频上传实例,PHP批量上传大文件技巧,PHP批量上传大文件,PHP实现批量上传图片的技巧,PHP结合WEB UPLOADER插件实现分段,
PHP结合WEB UPLOADER插件实现切片上传,PHP结合WEB UPLOADER插件实现断点续传,PHP结合WEB UPLOADER插件实现大文件上传,
PHP结合UPLOADER插件实现分片上传文件,PHP结合百度UPLOADER插件实现分片上传文件,PHP结合WEB UPLOADER插件实现分片上传文件,前端HTML5,JS,JQ,VUE2,VUE3,
React,前端的话都有可能用到,VUE2,VUE3,HTML5,也不一定是VUE, 公司内部有自己的产品,有些产品是之前开发的,没有用VUE,而是用的普通的HTML模板,用的也还好。
PHP实现大文件断点续传下载实例

视频教程

观看视频:https://www.ixigua.com/7201113912295883264

免费下载示例

版本:6.5.41
代码:https://gitee.com/xproer/up6-php/tree/6.5.41/

安装环境

PHP:7.2.14
Alt

调整块大小

Alt

NOSQL

NOSQL不需要任何配置,可以直接访问测试
Alt

SQL

创建数据库

您可以直接复制脚本进行创建
Alt
Alt

配置数据库连接

Alt

安装依赖

Alt

访问页面进行测试

Alt

数据表中的数据

Alt

免费资源

源码工程文档:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra
免费下载源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
免费下载授权器:https://drive.weixin.qq.com/s?k=ACoAYgezAAw0P06owX

全球唯一

全球唯一商业化开源产品,全球唯一免费提供源代码下载服务,面向政府和企业完全开放源代码,满足政府和企业100%自主安全可控需求。
免费下载产品源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwnB0Dk9D

开放源码

完全开源,免费为个人提供产品源代码,功能随便改,逻辑随便改,随时随地,想编就编,想发行就发行,我的代码我作主
免费为个人提供源码讲解服务,功能讲解,逻辑讲解,原理讲解,思路讲解,核心代码功能实现讲解,新业务功能扩展指导,免费提供编译指导,免费提供部署指导
满足个人用户,学习,研究,交流,探索等个性化的需求。
从泽优核心产品代码库中拉取代码
拉取代码

Windows平台源码

ActiveX-x86-工程源码

Alt

拉取代码

免费下载:https://drive.weixin.qq.com/s?k=ACoAYgezAAwnB0Dk9D
拉取代码
拉取成功

编译

编译

打包

打包

控件包

控件包

ActiveX-x64-工程源码

编译

编译

打包

打包

控件包

控件包

火狐工程源码

拉取代码

Alt

工程源码

Alt

谷歌Chrome工程源码

Alt

编译

编译成功

打包

打包

控件包

打包成功

edge工程源码

项目编译成功
edge工程编译成功

macOS控件源码

面向用户完全开放产品源代码,可自主编译,自主发行,满足企业100%自主安全可控需求
免费提供macOS平台编译部署指导,远程一对于专业开发人员指导
Alt

macOS(x86)控件编译

Alt

Linux工程源码

面向用户完全开放产品源代码,可自主编译,自主发行,满足企业100%自主安全可控需求
免费提供Linux版控件编译,打包,部署指导,远程一对一语音视频教程
Alt

编译成功

Alt

打包

Alt

龙芯(LoongArch)工程源码

面向用户完全开放产品源代码,可自主编译,自主发行,满足企业100%自主安全可控需求
免费提供龙芯(LoongArch)平台控件编译,打包,部署远程一对一专业指导。

编译

Alt

deb打包

deb包

rpm打包

rpm包

uos打包

uos包
控件包

arm工程

面向用户完全开放产品源代码,可自主编译,自主发行,满足企业100%自主安全可控需求

编译

编译成功

deb打包

deb打包
deb包文件

rpm打包

rpm打包
rpm包

uos打包

uos打包
uos包

兼容性

国内唯一支持IE浏览器
国内唯一支持COM技术构架
支持IE6,IE7,IE8,IE9,IE10,IE11
Alt

第三方应用集成

国内唯一提供第三方应用支持:泛微OA,通达OA,Discuz,
国内唯一支持多种开发语言(.NET.NET WinForm,.NET Core,JAVA,PHP,C++,WTL,VB)
Alt
Alt
Alt

技术支持

免费为个人提供技术支持服务,7*24小时随叫随到,免费产品更新服务,免费产品升级服务,免费技术交流服务,免费视频教程
免费提供原理讲解,源代码讲解,流程讲解,实现思路讲解
Alt

产品比较

国内唯一免费提供详细产品比较参数说明,可用于编写招投标要求和参数
下载产品比较文档:https://drive.weixin.qq.com/s?k=ACoAYgezAAwCtbFcSB
Alt

免费资源

产品比较:https://drive.weixin.qq.com/s?k=ACoAYgezAAwNT1peJ1
白皮书:https://drive.weixin.qq.com/s?k=ACoAYgezAAwqb51JS5
产品源代码文档:http://www.ncmem.com/webapp/up6/purchase.aspx?type=code
开发文档:https://drive.weixin.qq.com/s?k=ACoAYgezAAwa327yop
产品源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
授权生成器:https://drive.weixin.qq.com/s?k=ACoAYgezAAwTIcFph1
up6-asp.net-vs2013示例:https://gitee.com/xproer/up6-asp-net/tree/6.5.41/
up6-net-core示例:https://gitee.com/xproer/up6-net-core
up6-.net-winform示例:https://gitee.com/xproer/up6-code-csharp
up6-cpp-wtl示例:https://gitee.com/xproer/up6-cpp-wtl
up6-jsp-eclipse示例:https://gitee.com/xproer/up6-jsp-eclipse/tree/6.5.41/
up6-jsp-myeclipse示例:https://gitee.com/xproer/up6-jsp-myeclipse/tree/6.5.41/
up6-jsp-springboot示例:https://gitee.com/xproer/up6-jsp-springboot/tree/6.5.41/
up6-php5-示例:https://gitee.com/xproer/up6-php5/tree/6.5.41/
up6-php7-示例:https://gitee.com/xproer/up6-php/tree/6.5.41/
up6-Discuz插件:https://gitee.com/xproer/up6-discuz
up6-vue-cli示例:https://gitee.com/xproer/up6-vue-cli
up6-ExtJS 6示例:https://gitee.com/xproer/up6-extjs6
示例下载

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
大文件切片上传是一种常见的文件上传方式,可以通过将大文件分成多个小文件,然后分别上传,最后在服务器端将这些小文件合并成一个完整的文件。这种方式可以避免上传大文件时网络不稳定或中断的情况,同时也可以减轻服务器端的压力。 下面是一个基于 PHP 7.3 和 Vue 的大文件切片上传的示例: 前端部分: 1. 在 Vue 组件中定义一个 input 标签,用户选择需要上传的文件后触发上传事件: ``` <template> <div> <input type="file" @change="uploadFile" /> </div> </template> ``` 2. 在 uploadFile 方法中,使用 FileReader API 将文件分割成多个小文件,然后使用 axios 库将这些小文件逐个上传到服务器: ``` <script> import axios from 'axios'; export default { methods: { uploadFile(event) { const file = event.target.files[0]; const chunkSize = 1024 * 1024; // 将文件分割为 1MB 的小文件 const totalChunks = Math.ceil(file.size / chunkSize); const chunks = []; for (let i = 0; i < totalChunks; i++) { const start = i * chunkSize; const end = Math.min(start + chunkSize, file.size); const chunk = file.slice(start, end); chunks.push(chunk); } const formData = new FormData(); formData.append('filename', file.name); formData.append('totalChunks', totalChunks); chunks.forEach((chunk, index) => { formData.append(`chunk${index}`, chunk); }); axios.post('/upload', formData).then(response => { console.log(response.data); }); } } }; </script> ``` 后端部分: 1. 创建一个 upload.php 文件,用于处理文件上传请求: ``` <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $filename = $_POST['filename']; $totalChunks = $_POST['totalChunks']; $chunks = []; for ($i = 0; $i < $totalChunks; $i++) { $chunkName = "chunk{$i}"; if (isset($_FILES[$chunkName])) { $chunk = file_get_contents($_FILES[$chunkName]['tmp_name']); $chunks[] = $chunk; } } $content = implode('', $chunks); file_put_contents($filename, $content); echo 'File uploaded successfully'; } ``` 2. 在 PHP 配置文件 php.ini 中设置上传文件的最大大小和上传文件的最大数量: ``` upload_max_filesize = 100M max_file_uploads = 20 ``` 这样,就完成了一个基于 PHP 7.3 和 Vue 的大文件切片上传功能。需要注意的是,这里只是一个简单的示例,实际应用中还需要考虑上传进度、上传失败重试等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值