【问题标题】:PHP POST upload of files > 8.2M failsPHP POST上传文件> 8.2M失败
【发布时间】:2019-06-21 21:58:22
【问题描述】:

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

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

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

编辑

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

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

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

【问题讨论】:

  • 在开发工具中选择网络,选择POST,选择“headers”选项卡,然后在底部可以看到表单输入。
  • @doublesharp 成功上传和没有传输数据的上传之间的标题看起来与我在上面的编辑中提到的相同。

标签: php google-chrome file-upload


【解决方案1】:

我可以在这里找到答案:why would $_FILES be empty when uploading files to PHP

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

【讨论】:

  • 同时查看upload_max_filesize php 设置,您可能还需要调整网络服务器设置(例如,如果您使用的是 nginx)。
猜你喜欢
  • 2012-07-24
  • 2023-04-02
  • 2011-05-04
  • 2017-01-03
  • 1970-01-01
  • 2023-01-22
  • 2012-04-12
  • 2013-12-17
  • 2015-07-03
相关资源
最近更新 更多