我一直在网上搜索这个问题两天,希望其他人之前已经遇到过这个问题。我看到很多关于S.O.的问题。关于文件上传和PHP,但我的问题略有不同。我希望我只是遗漏了一些非常明显的东西。
好像我的表单中的数据从未完全到达服务器,因为 $ _ FILES 数组中填充的唯一参数是'name'。
例如,这是一个 $ _ FILES :
的vardumparray(1) { ["gameimage"]=> array(1) { ["name"]=> string(15) "Donkey-kong.gif" } }
没有错误代码,没有 tmp_name ,并且没有类型。
以下是我正在测试的一些非常基本的HTML:
<form name="upload-image-form" enctype="multipart/form-data" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="file" name="gameimage" size="30" />
<input type="submit" value="Submit" />
</form>
以下是我的相关php.ini设置:
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 10
upload_tmp_dir is default, but I have tried with /tmp as well.
运行PHP 5.3.8
我怀疑apache mod_rewrite或其他一些apache mod是干扰。
我完全控制主机,它是在AWS中运行的微实例。
任何帮助将不胜感激!
修正案#1:
我已经在Chrome和FF的浏览器控制台中验证了数据正在通过http正确传输。我的测试文件很小,不到10kb。
修正案#2:
似乎有其他人,使用完全相同的AWS实例,遇到了同样的问题:
http://www.webmasterworld.com/php/4452298.htm
这些版本的apache和linux似乎存在一些核心问题。