位置: 编程技术 - 正文

PHP搭建大文件切割分块上传功能示例(php处理大文件)

编辑:rootadmin

推荐整理分享PHP搭建大文件切割分块上传功能示例(php处理大文件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:简单的php文件,php处理大文件,php 大文件下载,php大文件导出,php大文件导出,php处理大文件,php大文件导出,php大文件导出,内容如对您有帮助,希望把文章链接给更多的朋友!

背景

在网站开发中,文件上传是很常见的一个功能。相信很多人都会遇到这种情况,想传一个文件上去,然后网页提示“该文件过大”。因为一般情况下,我们都需要对上传的文件大小做限制,防止出现意外的情况。 但是在有些业务场景中,大文件上传又是必须的,比如邮箱附件,或者内部OA等等。

问题

服务端为什么不能直接传大文件?跟php.ini里面的几个配置有关

当然不能简单粗暴的把上面几个值调大,否则服务器内存资源吃光是迟早的问题。

解决思路

好在HTML5开放了新的FILE API,也可以直接操作二进制对象,我们可以直接在浏览器端实现文件切割,按照以前的做法就得用Flash的方案,实现起来会麻烦很多。

JS思路

1.监听上传按钮的onchange事件

2.获取文件的FILE对象

PHP搭建大文件切割分块上传功能示例(php处理大文件)

3.把文件的FILE对象进行切割,并且附加到FORMDATA对象中

4.把FORMDATA对象通过AJAX发送到服务器

5.重复3、4步骤,直到文件发送完。

PHP思路

1.建立上传文件夹

2.把文件从上传临时目录移动到上传文件夹

3.所有的文件块上传完成后,进行文件合成

4.删除文件夹

5.返回上传后的文件路径

DEMO代码

前端部分代码

PHP部分代码

存在的问题

这只是一个简单的DEMO,有很多地方需要改进,比如上传的文件夹与临时文件放在一起,用户中途取消也没有发请求进行清理,容易造成文件冗余。JS采用的是同步模型,文件需要一块一块按顺序上传,会导致整个浏览器在上传的过程中出于堵塞的状态,按了按钮可能需要几秒钟才能反应过来,用户体验不好。真正需要产品化的时候就要综合考虑多种情况,当然作为一个示例,引导大家了解分块上传的思路还是不错的。

标签: php处理大文件

本文链接地址:https://www.jiuchutong.com/biancheng/296218.html 转载请保留说明!

上一篇:php与c 实现按行读取文件实例代码(php如何实现)

下一篇:CI框架实现优化文件上传及多文件上传的方法(ci框架教程)

  • 小微企业应纳税所得额是指什么
  • 增值税不交什么后果
  • 代收代缴个人所得税手续费
  • 月末计提无形资产的折旧
  • 金税盘怎么向分行汇款
  • 机械费可以计入劳务单价吗
  • 资产负债表中未交税金负数表示什么
  • 财务凭证和预算凭证目录只能有一条数据
  • 别人给开的普通发票能抵扣多少税
  • 购买的旧机械设备怎么办
  • 费用和利润的比例
  • 净资产合计低于实际收益
  • 春节汽车租赁
  • 行政相对人和行政管理相对人的区别
  • 公司股权转1元转让还涉及哪些税务风险?
  • 金税三期的变化
  • 工会发放员工福利的通知
  • 附加税结转的会计分录
  • 所得税汇算清缴补税的会计处理
  • 2018年个体工商户增值税起征点
  • 三种类型的同期资料文档准备时间和提交税务机关时限有什么要求?
  • 卷烟批发环节消费税计算
  • 小规模适用税率
  • 收到发票最晚什么时候付款
  • 一式三联的收据哪一联要盖财务章
  • cmd telnet命令大全
  • 收到棚户区改造资金
  • 出租商品计入什么科目
  • 老大心态是什么意思
  • 收到退回的保证金利息怎么入账
  • php curd
  • 摊余成本计量的金融资产
  • 审核凭证的操作步骤
  • 大自然水族馆怎么样
  • 企业所得税税前扣除和不扣除的区别
  • 锡特f8
  • php7.4配置
  • 微信红包的随机性
  • php递归函数桃子一天吃一半
  • 使用jquery的好处
  • 库存商品盘亏计入哪个科目
  • 外埠存款通过哪个会计账户核算?
  • 出口退税超期了怎么办
  • mongodb的redo日志为
  • 固定资产清理是三栏式还是多栏式
  • 2021年财政部令68号
  • 民宿的房屋租赁费怎么算
  • 公司股东分红要交税吗?
  • 携程代订住宿发票
  • 会计法中单位负责人均指法定代表人
  • 2020年申报期截止时间
  • 预付款开了发票
  • 损益类科目如何记忆
  • 费用类科目的明细怎么写
  • 会计刚开始学什么
  • 关于数据库的叙述
  • mysql5.5安装配置教程
  • mysql8.0无法启动
  • 删除默认操作系统
  • linux中vim命令详解
  • linux 下VSFTP 530 Permission denied错误的解决方法
  • centos 安装chia
  • ftp自动上传文件到服务器
  • win7如何打开命令窗口
  • windows网慢
  • win8.1系统安装
  • cocos2djs
  • opengl做简单的模型
  • python supper函数
  • javascript基础笔记
  • 最精简的年终工作总结
  • unity移动脚本代码
  • jqgrid 动态表头
  • android studio 无法解析 aar
  • “python”
  • 阿里云服务器使用教程
  • 中国税务稽查官网
  • 企业公示信息怎么查询
  • 小规模纳税人可以用专票抵扣税吗
  • 怎么申请浙江长沙健康码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设