$ _FILES数组只有部分信息

时间:2010-01-25 23:20:00

标签: php file-upload

我正在尝试使用$ _FILES数组调试一个非常奇怪的问题。当我尝试上传文件时,只设置了'name'键,类型,tmp_name等是空的,它返回错误#1。例如:

Array
(
    [name] => test.doc
    [type] => 
    [tmp_name] => 
    [error] => 1
    [size] => 0
)

test.doc是一个有效的文件,我可以毫无问题地打开它。这发生在我测试的一堆文件中; doc,pdf,xls,ppt,jpg。唯一有效的文件类型是txt和gif。

我在CentOS 5.3 w / PHP 5.2.6,Apache 2.2.3和Ubuntu 8.04 w / PHP 5.2.4,Apache 2.2.8上都遇到了这个问题。

我以为我可能是mime类型,但我检查了mime类型,并且所有常见类型都可用。

有什么想法吗?我以前从未遇到过这个问题!

感谢。

2 个答案:

答案 0 :(得分:7)

错误代码为1表示文件超过了php.ini中设置的最大上传大小。

此处解释了所有各种错误消息:http://php.net/manual/en/features.file-upload.errors.php

答案 1 :(得分:5)

根据PHP documentation on file uploads,错误值1(AKA UPLOAD_ERR_INI_SIZE)表示:

  

上传的文件超过了php.ini中的upload_max_filesize指令。

您可以尝试调整upload-max-filesize设置。

编辑:以兆字节为单位指定upload_max_filesize的正确语法为25M,而不是25MB。有关详细信息,请参阅documentation on using shorthand