如何上传PHP中超过500MB的大文件

php
2022-08-30 15:17:59

我用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);
}

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


答案 1

您认为增加上传大小限制是否会解决问题?如果上传2GB文件,然后发生了什么?您是否考虑了此类脚本的内存使用情况?

相反,你需要的是分块上传,请参阅这里 :在服务器端处理plupload的分块上传 和 这里 :文件上传;如何利用“分块”?


答案 2

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

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

memory_limit = 32M
upload_max_filesize = 24M
post_max_size = 32M

然后,您需要重新启动 apache。

请注意:
话虽如此,像这样上传大文件不是很可靠。可能会发生错误。您可能希望拆分文件,并包括一些用于纠错的其他数据。一种方法是使用标准恢复文件。然后,您可以在上传后使用类unix系统上的par命令行实用程序检查文件。


推荐