上传 900MB(或更大)文件:PHP、Apache、本地网络
Posted
技术标签:
【中文标题】上传 900MB(或更大)文件:PHP、Apache、本地网络【英文标题】:Upload 900MB (or bigger) file: PHP, Apache, Local Network 【发布时间】:2017-09-13 23:41:07 【问题描述】:我在本地机器上的 Apache/php 服务器上上传大于 500MB 的文件时遇到了麻烦。 我尝试过使用 php.ini 配置、.htaccess、ecc。 但我无法解决问题。
在我的 phpInfo 上,变量当前设置如下:
upload_max_filesize 2048M
post_max_size 2048M
memory_limit 1024M
我应该改变什么?我在 win7 上运行 xampp 3.2.2(win10 上同样的问题)。
Apache 版本 Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30
谢谢!
-----更新:这里有更详细的错误:
Warning: POST Content-Length of 941609661 bytes exceeds the limit of 524288000 bytes in Unknown on line 0
Notice: Undefined index: page_selector in C:\xampp\htdocs\upload_file.php on line 6
Notice: Undefined index: nome_video in C:\xampp\htdocs\upload_file.php on line 7
Notice: Undefined index: file in C:\xampp\htdocs\upload_file.php on line 8
Notice: Undefined index: file in C:\xampp\htdocs\upload_file.php on line 31
Notice: Undefined index: file in C:\xampp\htdocs\upload_file.php on line 33
Notice: Undefined index: file in C:\xampp\htdocs\upload_file.php on line 34
Notice: Undefined index: file in C:\xampp\htdocs\upload_file.php on line 35
Notice: Undefined index: file in C:\xampp\htdocs\upload_file.php on line 36
Notice: Undefined index: file in C:\xampp\htdocs\upload_file.php on line 37
Notice: Undefined index: file in C:\xampp\htdocs\upload_file.php on line 38
报告的行在哪里:
$page = $_POST["page_selector"];
$nome_video = $_POST["nome_video"];
$label = $_FILES["file"]["name"];
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if ((($_FILES["file"]["type"] == "video/mp4")
|| ($_FILES["file"]["type"] == "audio/mp3")
|| ($_FILES["file"]["type"] == "audio/wma")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg"))
【问题讨论】:
所以 499 MB 大小有效,但 >500 MB 无效?您是否测试过是否上传了较小的文件? 您应该提供详细的错误消息。你也检查过这个:***.com/a/18414806/25429 感谢@zloster,我尝试过使用其他解决方案,如 .htaccess,但错误始终是相同的“警告:633016961 字节的 POST 内容长度超过未知中 524288000 字节的限制”第 0 行'。 php.ini 已设置,.htaccess 也设置正确,phpInfo 返回我设置的值,但我仍然收到错误。 @zloster 谢谢!经过一些不同的方法后,我终于按照您在链接解决方案中的建议尝试了github.com/blueimp/jQuery-File-Upload。有用。谢谢 【参考方案1】:将变量upload_max_filesize, post_max_size, memory_limit in php.ini
设置为正确的值并重新启动服务器,然后它应该可以工作了。
您可能编辑了错误的 php.ini 文件!检查phpinfo()
,看看您是否真的编辑了正确的.ini
文件。
【讨论】:
嗨,我检查了 phpInfo,.ini 文件是正确的。在我的 phpInfo 页面 (xampp) 上,变量是正确的。但我仍然无法上传大文件。我将尝试打印错误并将其粘贴到此处。谢谢 你重启服务器了吗? 警告:633016961 字节的 POST 内容长度超过了 Unknown on line 0 中 524288000 字节的限制 这是我得到的错误......在某个地方有一个限制......是的,我停止并重新启动了服务器。我应该重启电脑吗? 这意味着在您的文件中某处存在需要更改的值524288000
【参考方案2】:
解决方案!
php.ini 配置正确。该文件太大而无法由单个 POST 处理。所以我尝试了一个处理分块文件上传的插件。
有了这个方法(和这个插件),问题就完全解决了!
https://github.com/blueimp/jQuery-File-Upload
感谢大家的支持。
【讨论】:
你在说什么“上传配置”? [edited] 抱歉,“上传配置”是指我是如何上传文件的。具有 >500MB 文件的单个 POST 会触发错误。使用拆分/分块的文件上传我没有更多问题。以上是关于上传 900MB(或更大)文件:PHP、Apache、本地网络的主要内容,如果未能解决你的问题,请参考以下文章