2012-05-31 111 views
0

我有一種惱人的問題。當我使用method =「post」提交以下代碼並查找$ _POST變量時,代碼無法識別它。當我切換到method =「get」並查找$ _GET變量時,它工作正常。我不想使用Get。有什麼建議麼?我的最終代碼也會包含其他輸入,但是,我希望文件輸入是可選的。所以我只有在文件輸入實際發送時才需要處理代碼。謝謝你的幫助!

//form.html.php 
<form action="index.php" method="post" enctype="multipart/form-data"> 
<label id="upload">Select file to upload: 
<input type="file" id="upload" name="foobar" /></label> 
<input type="submit" value="Submit" /> 
</form> 

//index.php 
if(isset($_POST['foobar'])) 
{ 
//some code 
} 

然而,這工作正常

//form.html.php 
<form action="index.php" method="get" enctype="multipart/form-data"> 
<label id="upload">Select file to upload: 
<input type="file" id="upload" name="foobar" /></label> 
<input type="submit" value="Submit" /> 
</form> 

//index.php 
if(isset($_GET['foobar'])) 
{ 
//some code 
} 

回答

6

獲取文件,請使用$_FILES,並且必須使用post方法。

+0

真棒。這工作。謝謝! – TimSum

+0

isset($ _ FILES ['foobar'])返回true是否已經上傳文件,所以我將其更改爲if(isset($ _ FILES ['foobar'])和$ _FILES ['foobar'] ['name' ]!=「」) – TimSum

1

您正在上傳文件,除了「文件」類型輸入外沒有任何輸入。因此不會有任何$ _POST值發送放置$ _FILES數組。並且您的表單需要設置method =「post」。

檢查這個代碼出

echo "Upload: " . $_FILES["file"]["name"] . "<br />"; 
echo "Type: " . $_FILES["file"]["type"] . "<br />"; 
echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 
echo "Stored in: " . $_FILES["file"]["tmp_name"];