2011-03-07 190 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」被啓用。我必須禁用它們。