2015-12-17 53 views
-2

我有一個編輯表單,我編輯我在add_item.php形式之前添加的項目信息。編輯表單現在的問題是,我希望能夠編輯項目信息,而不必重新上傳相同的圖像,以免它們被刪除。如果我上傳一張新圖片,它可以正常工作。但是如果我沒有上傳任何圖片,它會提交上傳表單,而不會上傳,從而覆蓋舊錶格。如果沒有被選中,我如何避免空文件上傳提交?

怎麼辦,如果沒有選擇新的文件I防止空提交的文件上傳輸入?

PHP:

$img=imageUpload('image'); 
     if(!$img) $img=''; 

HTML:

<input type="file" class="upld" name="image"> 
<img src=".'.$Info_Item['img'].'" alt="no img"> 
+0

確定。但是,告訴我們您的代碼,您使用提交編輯信息.. –

+0

使用'。如果你使用HTML5 –

回答

1

使用isset

if(isset($_FILES['image'])){ 
//code 
}else{ 
echo 'select image'; 
} 
+0

這不能解決任何問題的表單字段required',如果我不把圖像仍然被刪除如果'empty()'再次上傳它 – BigSox

+0

更好。 –

+0

你能給我一個完整的代碼嗎?我不知道還能做什麼除了粘貼代碼,並看它是否works..I'm新到整個PHP的事情.. – BigSox

1

嘗試在您編輯這個條件

if(!empty($_FILES['image']['name'])){ //checking if image is uploaded or not 

    $errors= array(); 
    $file_name = $_FILES['image']['name']; //your file name 
    $file_size =$_FILES['image']['size']; 
    $file_tmp =$_FILES['image']['tmp_name']; 
    $file_type=$_FILES['image']['type']; 
    $file_ext=strtolower(end(explode('.',$_FILES['image']['name']))); 

    $expensions= array("jpeg","jpg","png"); //assigninig the file types 

    if(in_array($file_ext,$expensions)=== false){ //checking the file types 
    $errors[]="extension not allowed, please choose a JPEG or PNG file."; 
    } 

    if($file_size > 2097152){ //checking file size is less than 2 MB 
    $errors[]='File size must be excately 2 MB'; 
    } 

    if(empty($errors)==true){ 
    move_uploaded_file($file_tmp,"images/".$file_name); //move your files to a folder 
    echo "Success"; 
    } 
    else{ 
    print_r($errors); 
    } 

} 
if($file_name == "") //if your file name is empty that is you didn't upload file 
{ 
    //your update query without image column 
} 
else 
{ 
    //your update query with image column 
} 
+4

爲什麼要OP「試試這個」?一個好的答案***將總是解釋所做的事情以及爲什麼這樣做,不僅是爲了OP,而且是爲了將來SO的訪問者。 –

+0

@JayBlanchard更新了我的答案。感謝您的評論 –

+0

您沒有更新說明。我總是很好地解釋我的好答案。 –

0

假設你正在使用的形式,更好的解決方法是使用下面的檢查:

if(($_SERVER['REQUEST_METHOD'] == 'POST') && isset($_FILES['image'])){ 
//your code here 
} 

問候 克勞迪奧

相關問題