$ _FILES数组只有部分信息

Dan*_*iel 4 php file-upload

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

Array
(
    [name] => test.doc
    [type] => 
    [tmp_name] => 
    [error] => 1
    [size] => 0
)
Run Code Online (Sandbox Code Playgroud)

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类型,所有常见的类型都可用.

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

谢谢.

Tim*_*per 7

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

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


Asa*_*aph 5

根据文件上传PHP文档,错误值1(AKA UPLOAD_ERR_INI_SIZE)表示:

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

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

编辑:upload_max_filesize以兆字节为单位指定的正确语法25M不是25MB.有关详细信息,请参阅有关使用速记文档.

  • @Daniel:"25MB"的语法看起来有些错误.尝试在`php.ini`中将其更改为"25M".有关简写语法,请参阅以下链接:http://www.php.net/manual/en/faq.using.php#faq.using.shorthandbytes (2认同)