【发布时间】: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