首页 > 解决方案 > PHP POST上传文件> 8.2M失败

问题描述

我正在使用w3school 在此处发布的脚本将文件上传到网络服务器。我正在使用谷歌浏览器访问带有 php7 的 Apache 服务器。

当我从我的 Windows 桌面上传文件时,脚本会像宣传的那样工作并且文件被上传。但是,当我尝试从任何其他文件夹上传文件时,$_FILES变量要么不存在,要么值为空(实际上似乎是大小问题,请参阅下面的编辑)。我不确定如何解决这个问题,因为 chrome 上的 devtools 似乎没有给我任何关于它在这个 POST 消息中发送的信息。

我假设问题出在客户端,因为服务器似乎没有从客户端获取任何信息。

编辑

我知道如何查看请求的标头,除了文件的内容长度之外,文件中没有任何内容包含在标头中。boundary除了看起来是随机的 content 和content-length明显随着文件大小而变化的 header 之外,有效的 headers 和不工作的 headers 之间没有区别。

我以为这与文件的大小有关,确实如此。我有一个包含不同大小照片的文件夹,我对越来越大的文件进行排序和上传,直到它失败。它在大约 8M 文件之前工作正常,当它们大于 8,200KB 时会失败。

我检查了 php.ini 并将其设置为最大上传大小 150M,所以它不是 ini 文件。我还检查了所有日志,当我尝试上传文件时,除了发布请求之外什么都没有显示。

标签: phpgoogle-chromefile-upload

解决方案


我能够在这里找到答案:为什么将文件上传到 PHP 时 $_FILES 为空

我不知道post_max_sizephp.ini文件中有一个选项,设置为8M。现在设置为100M。如果你超过这个大小的POST请求,php 不会解析 POST 信息,从而给你一个空白的$_FILES变量。


推荐阅读