2014-01-07 142 views
1

我正在編寫一些代碼,允許用戶上傳.zip文件。當他們上傳文件時.zip被移動到服務器上的正確位置。這一切都正常工作。從目錄中刪除.zip文件

我創建了一個按鈕,允許用戶刪除他們上傳的文件。當按鈕點擊時,我使用ajax來調用一個包含unlink();代碼的.php文件。

Ajax調用

function delete_custom_pack() { 

       var phpfilepath = '/path/to/php/file/'; 

       //console.log(phpfilepath); 


        jQuery.ajax({ 
         method: 'get', 
         url: phpfilepath , 
         success: function() { 
         alert("successfully got file"); 
         }, 
         error: function() { 
         alert("error getting file");    
         } 

        }); 

      } 

PHP文件

<?php 

$filename = 'http://www.some-site/wp-content/uploads/custom-folder/custom-pack/test.zip'; 

unlink($filename); 

?> 

我收到警報 「順利拿到了文件」,但該文件是永遠不會在服務器上斷開鏈接。它仍駐留在目錄中。成功電話只是讓我知道它成功地獲得了PHP文件。我的PHP文件裏面的unlink($file);似乎沒有被執行。

+0

什麼是你的日誌說?您可能沒有權限。 – user602525

+0

取消鏈接無法使用URL,只是一個路徑 – DNACode

+0

取消鏈接在成功時返回TRUE,在失敗時返回FALSE。 – Hackerman

回答

7

unlink()需要一個路徑,而不是一個URL。你必須給它的服務器上的路徑,例如unlink('/var/www/mysite/files/upload.zip');

unlink() documentation

+0

有趣的是,讓我試試看看會發生什麼 – EHerman

+1

請注意,這不是完全正確的:「從PHP 5.0.0開始,unlink()也可以與一些URL包裝一起使用。以及包裝器支持unlink()的列表的Wrappers。「 (來自php文檔) –

+0

非常有趣。這就解釋了爲什麼它不只是錯誤。我沒有意識到這種變化,並且很想看看它在實踐中是如何工作的。 – Crashspeeder