2

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

1 回答 1

1

检查表单的 HTML 代码,您是否更改了生产服务器中表单的方法?似乎在生产服务器上,浏览器根本不上传文件,例如表单代码必须如下:

<form method="POST"  enctype="multipart/form-data">
  <input type="file" name="file[]"><br />
  <input type="file" name="file[]"><br />
</form>
于 2012-08-27T10:58:20.270 回答