如何在PHP中上传500MB以上的大文件

Jam*_*rge 23 php

我用PHP制作了一个上传页面,但我不知道为什么页面不会上传大于500MB的文件,这是我第一次尝试上传大的东西,我改变了PHP.INI中的所有配置(post_max_size = 700M) ,upload_max_filesize = 600M,max_execution_time = 300).上传代码如下

if(isset($_FILES['upload']) && !empty($_FILES['upload']['name'])){
 move_uploaded_file($_FILES['upload']['tmp_name'], $this->filePath.$this->fileName);
}
Run Code Online (Sandbox Code Playgroud)

我需要帮助,我想知道是否有些事情做得不对..

Twi*_*919 20

您认为增加上传大小限制是否可以解决问题?如果上传2GB文件怎么办呢?你是否考虑过这种脚本的内存使用情况?

相反,你需要的是分块上传,在这里看到:处理在服务器端plupload的分块上传 这里:文件上传; 如何利用"分块"?


Jea*_*ean 11

通过配置,PHP只允许上传一定大小的文件.网上有很多文章解释了如何修改这个限制.以下是其中一些:

例如,您可以编辑php.ini文件并设置:

memory_limit = 32M
upload_max_filesize = 24M
post_max_size = 32M
Run Code Online (Sandbox Code Playgroud)

然后,您将需要重新启动apache.

注意:话
虽这么说,上传像这样的大文件并不是很可靠.可能会发生错误.您可能希望拆分文件,并包含一些其他数据以进行错误更正.一种方法是使用par恢复文件.然后,您可以在类似unix的系统上使用par命令行实用程序检查上载后的文件.