1

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

我已经阅读了这里提到的错误,但很久以前。奇怪的是,我遇到了与那个人在错误中提到的相同的行为。

  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 更改为其他内容解决了我的问题。

以下是手册中的引文,供需要的人使用:

设置允许的帖子数据的最大大小。此设置也会影响文件上传。要上传大文件,该值必须大于upload_max_filesize。如果您的配置脚本启用了内存限制,那么 memory_limit 也会影响文件上传。一般来说,memory_limit 应该大于 post_max_size。使用整数时,该值以字节为单位。也可以使用本常见问题解答中描述的速记符号。如果 post 数据的大小大于 post_max_size,则 $_POST 和 $_FILES 超全局变量为空。这可以通过多种方式进行跟踪,例如通过将$_GET 变量传递给处理数据的脚本,即,然后检查是否设置了$_GET['processed']。

4

2 回答 2

1

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

于 2013-04-02T12:35:51.193 回答
1

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

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

于 2013-04-02T12:36:34.347 回答