2014-01-07 138 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