2012-05-01 45 views
2

下面我有它從.listImage刪除一個附加文件名的JavaScript函數刪除一個文件,當用戶點擊「刪除」按鈕:如何從服務器

function stopImageUpload(success, imagefilename){ 

     var result = ''; 

     if (success == 1){ 
     result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';  
     $('.listImage').eq(window.lastUploadImageIndex).append('<div>' + htmlEncode(imagefilename) + '<button type="button" class="deletefileimage">Delete</button><br/><hr/></div>'); 
     } 
     else { 
     result = '<span class="emsg">There was an error during file upload!</span><br/><br/>'; 
     } 


     $(".deletefileimage").on("click", function(event) { 

     $(this).parent().remove(); 

    }); 

     return true; 
} 

但我想什麼知道當用戶點擊刪除按鈕時,我也希望從服務器上刪除該文件。如何才能做到這一點?

的文件存儲在被稱爲的圖像文件中的文件夾,並在服務器端的文件名代碼爲$_FILES["fileImage"]["name"]

文件的上傳到服務器上的PHP腳本一個單獨的頁面,低於上:

<?php 
$result = 0; 

if(file_exists("ImageFiles/".$_FILES['fileImage']['name'])) { 
    $parts = explode(".",$_FILES['fileImage']['name']); 
    $ext = array_pop($parts); 
    $base = implode(".",$parts); 
    $n = 2; 

    while(file_exists("ImageFiles/".$base."_".$n.".".$ext)) $n++; 
    $_FILES['fileImage']['name'] = $base."_".$n.".".$ext; 

    move_uploaded_file($_FILES["fileImage"]["tmp_name"], 
    "ImageFiles/" . $_FILES["fileImage"]["name"]); 
    $result = 1; 

} 
    else 
     { 
     move_uploaded_file($_FILES["fileImage"]["tmp_name"], 
     "ImageFiles/" . $_FILES["fileImage"]["name"]); 
     $result = 1; 


     } 


?> 
+1

您的代碼很容易遭到攻擊。您絕不應該在客戶端上存儲任何類似路徑的服務器數據!你需要創建一個處理程序,從你的ajax一個唯一的id分配給那個文件。處理程序然後驗證該ID並將在服務器上刪除它,而不知道任何類型的路徑或文件名。否則,我可以開始刪除你的整個系統! – ppumkin

+0

@ppumkin我實際的PHP腳本在那裏上傳的文件是在一個單獨的年齡從JavaScript中,有沒有辦法將它存儲在該頁面中刪除從服務器上的文件? – user1364441

回答

3

嘗試:

<?php 
// Delete image from server 
unlink($path_to_file); 
?> 

(取消鏈接;))

+0

所以只是爲了確保將確切的代碼是'的unlink($ _ FILES [「fileImage」] [「名稱」]);' – user1364441

+0

必須使用路徑名,在你的情況下delete一個上傳的文件,可以用$ _FILES [ 「fileImage」] [「tmp_name」]。 '取消鏈接($ _ FILES [ 「fileImage」] [ 「temp_name」]);' – hultberg

+0

這是給我一個無效的表達式標誌W出錯時,我已經試過嗎?這是什麼意思? – user1364441