为什么PHP $ _FILES总是空
问题描述:
我有类似HTML的
<form action="send.php" method="post" enctype="multipart/form-data">
<div>
<label for="subject">Subject</label>
<input type="text" name="subject" />
</div>
<div>
<label for="image">Image</label>
<input type="file" name="image" />
</div>
<input type="submit" value="Send" />
</form>
我不断收到null
为$_FILES
这是为什么?
答
<?php print_r($_FILES);?>
<form action="" method="post" enctype="multipart/form-data">
<div>
<label for="subject">Subject</label>
<input type="text" name="subject" />
</div>
<div>
<label for="image">Image</label>
<input type="file" name="image" />
</div>
<input type="submit" value="Send" />
</form>
检查上面的代码:
它应该会产生以下的输出:
Array
(
[image] => Array
(
[name] => ezwebin_userguide.pdf
[type] => application/pdf
[tmp_name] => C:\Windows\Temp\php1485.tmp
[error] => 0
[size] => 1073054
)
)
答
您是否尝试过回显更具体的数据? 例如:
echo $_FILES["file"]["error"]
或者
echo $_FILES["file"]["name"]
问候。
答
file_uploads可能在php.ini关闭。试试这个脚本:
<?php
echo 'file_uploads: '. ini_get('file_uploads'). '<br />';
echo 'upload_tmp_dir: '. ini_get('upload_tmp_dir'). '<br />';
echo 'upload_max_filesize: '. ini_get('upload_max_filesize'). '<br />';
echo 'max_file_uploads: '. ini_get('max_file_uploads'). '<br />';
?>
+0
我得到像“file_uploads:1 upload_tmp_dir: upload_max_filesize:10M max_file_uploads:20”'upload_tmp_dir'是空的,shld我设置了吗? – 2011-03-08 01:40:23
答
在窗体部分中,确保你有这样的代码:ENCTYPE =“的multipart/form-data的”
答
我得到了同样的问题,没有一个主题是我的错误。检查你的.htaccess文件,如果你有一个,如果“MultiViews”被启用。我必须禁用它们。
显示php代码..你尝试过'var_dump($ _ FILES)'吗? – 2011-03-07 09:45:25
上传的文件是否有扩展名? '在Windows XP SP2上,Explorer有时无法上传没有扩展名的文件。在这种情况下,$ _FILES数组为null。微软表示它的一项安全功能(!)我们唯一可以解决的解决方案是强制上传文件以扩展.' – 2011-03-07 09:47:45
@Shakti Singh,是的,我做到了,有任何问题? – 2011-03-08 01:29:28