2011-03-07 191 views
2

我有类似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这是为什么?

+3

显示php代码..你尝试过'var_dump($ _ FILES)'吗? – 2011-03-07 09:45:25

+1

上传的文件是否有扩展名? '在Windows XP SP2上,Explorer有时无法上传没有扩展名的文件。在这种情况下,$ _FILES数组为null。微软表示它的一项安全功能(!)我们唯一可以解决的解决方案是强制上传文件以扩展.' – 2011-03-07 09:47:45

+0

@Shakti Singh,是的,我做到了,有任何问题? – 2011-03-08 01:29:28

回答

5
<?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 
     ) 

) 
0

您是否尝试过回显更具体的数据? 例如:

echo $_FILES["file"]["error"] 

或者

echo $_FILES["file"]["name"] 

问候。

0

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

5

在窗体部分中,确保你有这样的代码:ENCTYPE =“的multipart/form-data的”

0

我得到了同样的问题,没有一个主题是我的错误。检查你的.htaccess文件,如果你有一个,如果“MultiViews”被启用。我必须禁用它们。