2013-07-29 41 views
-2

我已经查看了大多数建议的问题,但无法找到我需要的答案。php取消链接不删除文件,但更改所有者和权限

我使用CakePHP的2.x和我有一个控制器的功能如下:

public function removeImage($image) { 
    $p = '/explicit/path/to/website/domain.com/www/app/webroot/img/weddings/'; 
    $command = "rm ".$p.$image."*.jpg"; 
    $output = shell_exec($command); 
    /* do something with $output */ 
} 

视图文件有此链接

<?php echo $this->Html->link('remove image', array('controller' => 'weddings', 'action' => 'removeImage', 'p'.$aWeddings[$wedding['Wedding']['zenId']]['TitlePhoto']['Id'])); ?><?php endif; ?> 

这给了我像“p12321223213”的字符串。

我将权限设置为user:www-datarw-rw-r--

现在,当我点击链接,它不仅不会删除该文件,但它改变www-data:www-datarw-r--r--

权限用户www-data组的成员。

为什么不删除文件?

感谢

+0

听起来像你的代码_is_删除文件,然后立即重新创建它(试图删除文件将只做两件事之一1)删除文件2)没有)。 – AD7six

+0

@ AD7six我理解你的逻辑,但这并不能解释为什么'新'文件大小与旧大小完全一样。 – khany

+0

它如何解释文件的大小 - 我认为你现在陷入了“这个问题肯定是这个”模式,并且需要看看“问题”有点不同。例如在删除文件之后 - 记录一个dir列表。如果没有其他进程正在重新创建文件。顺便说一句,为什么使用shell_exec而不是unlink或文件类? – AD7six

回答

2

尝试使用PHP本身的功能删除文件:unlink()

+0

我是先做的。得到完全相同的结果。 – khany

+0

$输出变量的输出是什么以及什么给你这个命令:echo“shell_exec($ command);”; – AtLeT

+0

$输出为空 – khany

相关问题