layui实现文件压缩上传_tp5+layui 实现上传大文件

本文介绍了如何使用layui和TP5框架实现大文件的分块上传,详细讲解了配置文件上传限制、nginx的client_max_body_size设置,以及通过FileReader和file.slice()实现文件分块读取和异步上传,最终成功上传了近4G的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

之前所写的文件上传类通常进行考虑的是文件的类型、大小是否符合要求条件。当上传大文件时就要考虑到php的配置和服务器的配置问题。之前简单的觉得只要将php.ini中的表单上传的 大小,单脚本执行的最大时间都配 大就行了。显然这是很小白吃的做法。这样改完之后页面及服务器还是会崩溃。差不多几百兆这样吧。所以查阅资料,采用将大文件分割上传的方式来解决。这里进行记录下。

内容:

首先记录下更改文件上传大小的一些配置信息

打开php.ini

file_uploads = on       //是否允许通过HTTP上传文件的开关,默认开启

upload_tmp_dir              //临时文件储存的路径

upload_max_filesize   20M         //允许上传的文件最大值

post_max_size          22M         //通过表单POST所能上传的大小

max_execution_time 600    //单个PHP页面允许运行的最大时间

max_input_time         600        //单个PHP页面接收数据所需的最大时间,默认60秒

memory_limit              256M       //单个PHP页面执行过程中可占用的最大内存,默认8M

通过更改上述的配置就可以调整允许文件上传的大小。(有的还需要调整服务器的一些配置)

补充:413错误如果服务器是nginx的话,需要更改配置nginx_conf 中的client_max_body_size 24M,设置接收客户端发送过来包的最大值。记得放在http里,重启服务器,用restart,不要用reload。

贴下具体修改nginx配置的博文:http://blog.51cto.com/13673885/2299771。

接着开始实现文件的分割上传。

文件通过HTML的input标签的file来选择文件上传。通过H5新对象FileReader。就像字面上的意思一样FileRaeder对象就是一个读取本地文件的对象。FileReader对象可以将本地文件读取后以base64位的编码返回。(具体有关FileReader对象的使用,请自行百度,或者阅读以下博文,写的很具体。博文连接:https://www.cnblogs.com/hhhyaaon/p/5929492.html)

实际开发经历:

第一次尝试

通过input file标签来选择文件

采用FileReader对象对文件进行读取

通过ajax异步将文件的base6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值