我正在尝试使用$ _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类型,并且所有常见类型都可用。
有什么想法吗?我以前从未遇到过这个问题!
感谢。
答案 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。