我正在使用w3school发布的here脚本将文件上传到Web服务器。我正在使用Google Chrome浏览器通过php7连接到Apache服务器。
当我从Windows桌面上载文件时,脚本按公布的方式工作,并且文件已上载。但是,当我尝试从任何其他文件夹上载文件时,$_FILES
变量不存在或其值为空(它实际上似乎是大小问题,请参见下面的编辑)。我不确定如何解决此问题,因为chrome上的devtools似乎无法向我提供有关此POST消息中所发送内容的任何信息。
我认为问题出在客户端,因为服务器似乎没有从客户端获取任何信息。
编辑
我知道如何查看请求的标头,并且标头中除了内容长度以外,没有任何关于文件的内容。有效的标头和不起作用的标头之间没有什么区别,除了内容boundary
(似乎是随机的)和content-length
标头(显然随文件大小而变化)之外。
我认为这与文件的大小有关。我有一个不同大小的照片文件夹,我整理并上传了越来越大的文件,直到失败。直到大约800万个文件,它都可以正常工作,而当它们大于8,200KB时,它会失败。
我检查了php.ini,并将其设置为最大上传大小150M,因此它不是ini文件。我还检查了所有日志,当我尝试上传文件时,除了发帖请求外什么都没有出现。
答案 0 :(得分:1)
我能够在这里找到答案:why would $_FILES be empty when uploading files to PHP。
我不知道php.ini文件中有一个post_max_size
选项,该选项设置为8M。现在将其设置为100M。如果超出了 POST 请求的大小,则php不会解析POST信息,从而为您提供一个空白的 $ _ FILES 变量。