我在一个项目中做了一个多文件上传功能。为此,我使用了uploadify的flash版本。
它在我的本地开发机器和我要测试的另一台服务器上运行良好,但在生产机器上不起作用(当然)。
在对问题进行故障排除后,我发现处理上传过程的脚本没有在有问题的服务器上接收$_FILES中的所有参数。
工作机器上的var_dump($_FILES)
:
["Filedata"]=>
array(5) {
["name"]=>
string(10) "simple.pdf"
["type"]=>
string(24) "application/octet-stream"
["tmp_name"]=>
string(14) "/tmp/phpTnNROo"
["error"]=>
int(0)
["size"]=>
int(60911)
}
}
故障机器上的var_dump($_FILES)
:
["Filedata"]=>
array(1) {
["name"]=>
string(10) "simple.pdf"
}
}
我不知道为什么,但甚至没有一个错误号码。
我该怎么解决?
我使用以下PHP版本:
Dev Machine: PHP 5.3.15
Working Remote Machine: PHP 5.3.3
Failing Remote Machine: PHP 5.3.8
php.ini配置(更改它以消除作为错误源的一些配置限制):
file_uploads = On
max_file_uploads = 200
upload_max_filesize = 1G
post_max_size = 1G
memory_limit = 256M
max_execution_time = 14000
max_input_time = 14000
检查HTML代码中的表单,您是否在生产服务器中更改了表单的方法?在生产服务器上,浏览器似乎根本不上传文件例如,表单代码必须类似于:
<form method="POST" enctype="multipart/form-data">
<input type="file" name="file[]"><br />
<input type="file" name="file[]"><br />
</form>