文件上传的PHP服务器配置


PHP Server Configuration for File Uploads

我在一个项目中做了一个多文件上传功能。为此,我使用了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>