如何编写PHP实现大文件分片上传的代码片段?

更新于
2026-09-28 15:25:04
0阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计548个文字,预计阅读时间需要3分钟。

如何编写PHP实现大文件分片上传的代码片段?

服务端为什么不能直接传输大文件?这与php.ini中的几个配置有关:

+ upload_max_filesize=2M / PHP最大能接收的文件大小+ post_max_size=8M / PHP能接收的最大POST值+ memory_limit=128M / 内存上限+ max_execution_time=30 / 最大执行时间

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

upload_max_filesize = 2M //PHP最大能接受的文件大小
post_max_size = 8M //PHP能收到的最大POST值'
memory_limit = 128M //内存上限
max_execution_time = 30 //最大执行时间

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

解决思路

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

JS思路

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

2.获取文件的FILE对象

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

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

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

阅读全文

本文共计548个文字,预计阅读时间需要3分钟。

如何编写PHP实现大文件分片上传的代码片段?

服务端为什么不能直接传输大文件?这与php.ini中的几个配置有关:

+ upload_max_filesize=2M / PHP最大能接收的文件大小+ post_max_size=8M / PHP能接收的最大POST值+ memory_limit=128M / 内存上限+ max_execution_time=30 / 最大执行时间

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

upload_max_filesize = 2M //PHP最大能接受的文件大小
post_max_size = 8M //PHP能收到的最大POST值'
memory_limit = 128M //内存上限
max_execution_time = 30 //最大执行时间

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

解决思路

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

JS思路

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

2.获取文件的FILE对象

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

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

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

阅读全文