php - 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 文件。我还检查了所有日志,当我尝试上传文件时,除了发布请求之外什么都没有显示。
解决方案
我能够在这里找到答案:为什么将文件上传到 PHP 时 $_FILES 为空。
我不知道post_max_size
php.ini文件中有一个选项,设置为8M。现在设置为100M。如果你超过这个大小的POST请求,php 不会解析 POST 信息,从而给你一个空白的$_FILES变量。
推荐阅读
- java - 如何解决“java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView”错误?
- javascript - 鼠标悬停时更改标记图标
- firebase - Firebase 无密码身份验证,更新电子邮件时出现无效的电子邮件链接错误
- javascript - 如何使用 D3.js 将不同的 SVG 放入网格中?
- laravel - 在 laravel 8 中更新记录时出错
- bash - 将参数分配给位置参数
- ios - 将设备更新到 iOS 14.7.1 后,iOS 颤振应用程序未运行
- php - 我正在尝试使用 browser() 函数在 PHP 上打印浏览器名称,它在我拥有的每个浏览器上打印的只是“默认浏览器”
- python - ValueError: range() arg 3 在使用 RegexpParser 时不能为零
- python - 如何比较两个整数