2013-12-08 63 views
2

为什么不能在Symfony中使用unlink()?Symfony如何删除文件

我已经试过这样:

unlink(/Applications/XAMPP/xamppfiles/htdocs/symfonydev/web/account_assets/data/suppliers/file.txt) 

我继续得到同样的回复:警告:取消链接(/Applications/XAMPP/xamppfiles/htdocs/symfonydev/web/account_assets/data/suppliers/wordpress.txt) :权限被拒绝...

我该怎么做?

我已将该文件的权限设置为777。

+0

'unlink()'函数与Symfony没有任何关系。此外,您需要将路径放在引号中(即'unlink('/ path/to/file')')。至于“Permission denied”错误,你看过它的权限和谁拥有这个文件吗? 'ls -la'会告诉你这个。 –

回答

2

这是包含这些文件的主目录上的权限问题。一旦我改变了所有者和权限,一切运作良好。文件系统组件非常棒!

2

请注意,您可以使用filesystem componentremove功能。如果你不想使用文件系统组件,这很好,你可以使用unlink(),有这remove function of the doc一个很好的例子:

public function removeUpload() 
{ 
    if (isset($this->file)) { 
     unlink($this->file); 
    } 
} 

现在,主要的问题是,你没有权限删除这个文件。您必须在虚拟主机中配置这样的目录:

<VirtualHost *:80> 
    DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/symfonydev/web/" 
    ServerName yoursite.dev 
    <Directory "/Applications/XAMPP/xamppfiles/htdocs/symfonydev/web/account_assets/data/"> 
    AllowOverride None 
    Allow from All 
    </Directory> 
</VirtualHost>