2011-08-16 186 views
15

我有一個表單,我發佈不同的領域和每個類型的領域張貼似乎工作,除了輸入文件類型。張貼輸入類型文件問題沒有張貼

我使用的是var_dump($_POST);,其他所有字段都沒有在輸入類型文件中。

我的組成部分看起來是這樣的:

<form enctype="multipart/form-data" id="ajax-form" action="index2.php" method="POST" data-ajax="true"> 

和行之有效的一切。

如果在輸入類型文件中有任何不同之處?

<input type="text" id="myid" name="myid" value="" /> ..This posts value 

<input id="theimage" name="theimage" type="file" /> .. does not post value 

任何想法的人?

+5

+1因爲嚴重,這個問題還沒有被問到嗎?我記得在第一次弄清楚的時候,我感到非常沮喪。 –

回答

29

文件存儲在$ _FILES,而不是$ _ POST

http://php.net/manual/en/reserved.variables.files.php $ _FILES變量

http://www.php.net/manual/en/features.file-upload.php手冊上的PHP文件上傳。

處理文件(沒有錯誤檢查):

$ROOT = "/path/to/store/files"; 
foreach($_FILES as $file => $details) 
{ // Move each file from its temp directory to $ROOT 
    $temp = $details['tmp_name']; 
    $target = $details['name']; 
    move_uploaded_file($temp, $ROOT.'/'.$target); 
} 

http://www.php.net/manual/en/function.move-uploaded-file.php查看更多的例子。

+0

剛剛嘗試過:echo @ $ _ FILES [「theimage」];但返回數組...我怎樣才能得到一個變量的文件名? – Satch3000

+0

如果你var_dump數組,你會看到它有幾個條目,每個文件一個,然後有幾個關於該文件的數據。我會用一個例子編輯我的帖子。 –

+0

http://www.php.net/manual/en/features.file-upload.post-method.php詳細介紹$ _FILES數組的佈局。 –

0

實際上,如果您嘗試使用Firefox(> 13),則可以獲取發佈的值。但是,如果您使用的是Chrome或Safari,則無法獲取發佈的值。我認爲它與瀏覽器有關。