上传“较大”(超过 2MB)文件时的 PHP 文件上传问题
Posted
技术标签:
【中文标题】上传“较大”(超过 2MB)文件时的 PHP 文件上传问题【英文标题】:PHP File Upload problems when uploading "larger" (over 2MB) files 【发布时间】:2012-02-02 18:16:39 【问题描述】:我在尝试上传“更大”文件时遇到问题,我相信我被允许的限制约为 2MB。我已经上传了多个小于 2MB 的文件类型(.js、.png、.jpg、.psd、.php),但是任何超过 2MB 的文件都失败了。
1.8MB psd 图片工作 2.4MB psd 图像不起作用(与 1.8 相同的文件,只是更大)我已经将 php.ini 更改为以下内容:
upload_max_filesize = 20M(从 2M 更改为) post_max_size = 40M(从 2M 更改为) max_execution_time = 60(从 45 更改) max_input_time = 180(从 30 更改为) memory_limit = 48M(从 8M 更改)我还在我希望移动文件的最终目录和上传表单所在的初始目录中的 htaccess 文件中添加了以下内容:
LimitRequestBody 53687091就像我提到的,上传适用于较小的文件,所以我认为它必须是对上传大小的限制,而不是表单有任何问题。
关于我接下来可以看哪里的任何想法?我希望限制为 20M,这一切都在我们的后端,需要登录才能访问该页面,所以我不担心 rouge 上传。
【问题讨论】:
根据您的服务器配置方式,您可能需要重新启动 Web 服务器服务才能使更改生效。另外,什么是 phpinfo();页面展示? 是否有实际的错误被抛出?还是页面只是“过期”而不导致“文件上传”结果?也许是您的代码检查大小而不是服务器软件? 这个错误只是我的自定义表单错误,说上传没有完成,没有来自 apache 或 php 或任何错误。 您能发布您用于表单和处理脚本的代码吗? (如果你对它感到满意,你的 phpinfo() 会打印出来?另外(长镜头),页面上是否有任何定时事件(js)运行?几年前我遇到了类似的问题,它变成了有一个 setinterval 事件正在中断上传。 【参考方案1】:在进行更改后,您是否尝试过重新启动您的网络服务器?
【讨论】:
我有。有一条线对我来说很重要,临时上传位置在 php.ini 文件中被注释掉了。这应该没关系,它应该默认为其他东西,但这可能与它有关吗? 仅当位置位于有限的磁盘分区或配额耗尽的卷上。【参考方案2】:确认您的 upload_max_filesize / post_max_size 确实已更新。
有时用户不知道要编辑哪个php.ini
文件。
最好的方法是创建文件(稍后删除)并添加以下代码:
<?php
phpinfo();
?>
运行该文件以获取您的系统设置(搜索 upload_max_filesize 等);
【讨论】:
是的,我用 phpinfo() 确认了所有更改。我完全被难住了,据我所知,它应该可以工作。 换句话说,我认为这家伙是想说更新你的 PHP.ini 文件,然后再试一次。以上是关于上传“较大”(超过 2MB)文件时的 PHP 文件上传问题的主要内容,如果未能解决你的问题,请参考以下文章