【问题标题】:Php upload strange behaviorphp上传奇怪行为
【发布时间】:2013-04-02 12:32:38
【问题描述】:

我正在测试我制作的一个小应用程序,当上传多个超过一定大小的文件时,我看到了一个奇怪的行为。

我读过这里提到的the bug,但它是很久以前的事了。奇怪的是,我遇到了与那个人在错误中提到的相同的行为。

  1. 当我上传时,假设 10 个小文件(每个 50-300kb)没有任何问题,并且应用程序正常工作。
  2. 当我上传两个各 1.5mb 的文件时,应用程序会输出一条错误消息,因为应用程序允许的最大大小为 512kb(php.ini 中为 2mb)。
  3. 当我上传多个超过 7 或 8 mb 的文件(我没有尝试找到确切的大小)时,php 崩溃而没有给出错误。由于我在开发服务器中,因此错误已打开,通常会显示致命错误。
  4. 当我上传 1 个文件(比如 25mbs)时,我仍然遇到同样的错误。

好吧,我说它崩溃了,因为当我尝试 var_dump($_FILES) 甚至 var_dump($_POST) 时,数组返回 null 尽管它应该至少有提交名称或其他名称。

我检查了 tmp 文件夹,文件也没有存储在那里。然而,另一个奇怪的行为是,当我上传超过这个神秘限制的文件时,浏览器似乎正在上传(我看到页面需要一段时间才能加载),但是,如前所述,php 表现得好像它什么都不知道。

这种奇怪行为的原因是什么?

PS:我正在使用 Windows 7 64 位上的本地主机(wampserver)。

编辑

找到解决方案:

将 post_max_size 从 8mb 更改为其他大小解决了我的问题。

这里是来自the manual 的报价给需要的人:

设置允许发布数据的最大大小。此设置也会影响文件 上传。要上传大文件,此值必须大于 上传最大文件大小。如果您的配置启用了内存限制 脚本,memory_limit 也会影响文件上传。通常来说,一般来说, memory_limit 应该大于 post_max_size。当一个整数是 使用时,该值以字节为单位。速记符号,如所述 在这个FAQ中,也可以使用。如果发布数据的大小更大 与 post_max_size 相比,$_POST 和 $_FILES 超全局变量为空。 这可以通过各种方式进行跟踪,例如通过传递 $_GET 处理数据的脚本的变量,即 ,然后检查是否 $_GET['processed'] 已设置。

【问题讨论】:

  • 为什么不手动安装 PHP 和 Apache?或尝试使用 XAMP

标签: php upload


【解决方案1】:

这是错误的,因为您的上传限制非常少 - upload_max_filesize or post_max_size 。 在 php.ini 中只需将两者的值都增加到 200MB,您将不会收到此错误

【讨论】:

  • 我已经尝试更改上传大小,但行为仍然相同。
  • 但我忘记了 post_max_size ;) 谢谢
  • 更改后您是否刷新(重新启动)了您的 wamp 服务器
【解决方案2】:

在服务器中发送帖子是有限制的。你应该是512kb。你可以检查 phpinfo();

我认为它是 php.ini upload_max_filesize 中的参数。换成更大的尺寸。

【讨论】:

    猜你喜欢
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 2014-07-08
    • 2013-08-09
    • 2021-11-21
    • 2018-05-20
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多