2012-02-03 69 views
2

我有一個用戶註冊表單,並且其他表單元素的上傳圖像在那裏是可選的。所以有時用戶可能不會將圖像與其他數據一起上傳。如何檢查圖像是否與其他表單數據一起提交

現在的問題是,即使用戶還沒有上傳圖像,下面的代碼總是回聲,該文件被上傳

能否請你請你告訴我如何檢查如果圖像是由用戶提交,並它回顯/顯示「未上傳」,如果沒有上傳?

感謝提前:)

在我的控制器文件

extract($_POST); // <<This is to retrieve all form data at once 

if(isset($_FILES['userfile'])){ 
    echo"file uploaded"; 
} else{ 
    echo "Not Uploaded"; 
} 

這是我查看文件

<input type="file" class="" name="userfile" size="20" /> 

回答

13

每PHP文件:

如果沒有選擇文件在你的表單中上傳,PHP將返回$ _FILES ['userfile'] ['size']爲0,$ _FILES ['u serfile'] ['tmp_name']爲無。

來源:http://www.php.net/manual/en/features.file-upload.post-method.php

所以你有條件的可以更改爲:

if(isset($_FILES['userfile']) && $_FILES['userfile']['size'] > 0){ 
    echo"file uploaded"; 
} else echo "Not Uploaded" ; 
2

您可以結合兩個檢查:

if (count($_POST) and !empty($_FILES['userfile'])) { 

     // uploaded 

} 
else { 

     // either is missing 

} 

注意,你應該使用extract($_POST);。你無法控制哪些局部變量會被外部覆蓋。 (如果沒有其他調查EXTR_PREFIX。)

相關問題