位置: 编程技术 - 正文

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框架教程)

  • 坏账准备要写到明细账里面吗
  • 消费税征税范围是什么口诀
  • 计提资产减值准备体现了会计信息质量特征的( )
  • 公司销户本金转到哪里
  • 外汇账户包括哪些类型
  • 发票二维码只有一半可以收吗
  • 进口设备贴息政策2019
  • 贸易公司退税怎么做账
  • 购买工程款计入什么科目
  • 工程预付款包括工人工资吗
  • 待摊费用跨年冲销如何入账?
  • 公司宣传牌模板
  • 非货币性资产交换损益计算
  • 小规模 开增值税
  • 阿里云增值税专用发票
  • 增值税和消费税常用的公式
  • 关于土地增值税若干问题的通知
  • 购买标书的费用计入什么科目
  • 以前年度损益调整编码
  • 银行透支算资产吗
  • 盈余积累转增股本的个税问题
  • 税务局不备案可以吗
  • Windows10如何切换中英文输入法
  • 冲回存货跌价准备
  • 房地产开发资质查询
  • php基于反射机制实验报告
  • 在禁用uac时无法激活什么原因
  • 小规模纳税人销售货物税率是多少
  • 我老公有外遇了,我很爱他,我该怎么办
  • win7安装高版本chrome
  • 坏账准备的会计科目
  • 审核过程中发现的问题应由被审核部门实施纠正
  • 商业折扣影响入账金额吗
  • latex希腊字母斜体
  • 土地增值税的计算
  • thinkphp开发框架
  • 因为技术原因
  • 申报个人所得税是按应发工资还是实发工资
  • php数组函数面试题
  • php引用文件的方法
  • vue角色管理
  • php实现导出带样本的方法
  • php中自定义函数的语法格式
  • php自动转换
  • 狂神说css笔记
  • 可供出售金融资产新准则叫什么
  • 洗浴报销票子怎么写
  • 清算期间还需要报税吗
  • mongodb replica set 配置高性能多服务器详解
  • 差旅费抵扣所得税标准
  • 建筑劳务公司税务筹划
  • 合同负债 案例
  • 学历教育服务增值税
  • 收到政府补助的会计分录
  • 开具的增值税专用发票上注明的价款含税吗
  • 个人垫付社保会计分录
  • 其他应付款个人往来的涉税风险
  • 研发费加计扣除申报表怎么填
  • 成本核算的意义在于
  • 代扣的应由职工个人负担的社会保险费计入什么科目
  • mysql常用功能
  • mysql替换命令
  • win2003好用吗
  • 深入解析linux内核
  • 使用筷子就餐会不会传染乙肝病毒
  • ubuntu 怎么用
  • 苹果mac怎么连接显示器
  • linux的文件和目录的区别
  • window10隐私常规设置
  • win8创建我的电脑
  • 文件视图分为哪几种
  • 判断输入的日期是一年中第几天
  • bat批处理脚本教程
  • ubuntu nodejs
  • ie浏览器怎么设置打开网页在同一个窗口
  • python生成随机
  • node.js介绍
  • android平台搭建
  • javascript html5 canvas实现可拖动省份的中国地图
  • nodejs model
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设