incapaz de desvincular o arquivo em php
Em um site, estou tentando implementar um utilitário que remove as imagens selecionadas de uma determinada pasta usando um formulário HTML com a seleção da caixa de seleção e um arquivo php que realmente deve remover as imagens selecionadas. O formulário funciona e os valores da caixa de seleção são analisados em$_POST['images']
, o código php para fazer o resto:
$dir=__ROOT__."/images/".$_POST['page'];
echo "dir=".$dir."<br>";
$files=array();
$fdir=opendir($dir);
while ($i = readdir($fdir)) {
//detect images and put them into files()
if (strpos(strtolower($i),".jpg")==true&&strpos(strtolower($i),".thumb")==false) $files[]=$i;
}
closedir($fdir);
for($a=0;$a<sizeof($files);$a++) {
if(in_array($files[$a],$_POST['images'])) {
$file="../images/".$_POST['page']."/".$files[$a];
echo $file."<br>";
echo('<img src="'.$file.'.thumb"><br>');
if(unlink("../images/".$_POST['page']."/".$files[$a])) {
echo ("deleted: ".$files[$a]."<br>");}
else {echo ("deletion of ".$files[$a]." failed<br>");}
if(unlink("../images/".$_POST['page']."/".$files[$a].".thumb")) echo "deleted: ".$files[$a].".thumb";
}
}
Ao tentar excluir, por exemplo IMG_001.jpg (e miniatura IMG_001.jpg.thumb), recebo a seguinte saída de eco:
dir={absolute path of the file}
../images/keramiek/IMG_001.jpg
{the correct thumbnail}
deletion of IMG_001.jpg fialed
O que está acontecendo de errado? Por que nãounlink()
remover o arquivo? Eu tentei com permissões definidas em 777, mas ainda sem sucesso ...
SOLUÇÃO:
Depois de alterar as permissões da pasta que contém as imagens, a exclusão funciona como deveria. O proprietário foi alterado para www-data e as permissões estão definidas para 755.
Imagens recém-carregadas (por FTP) também são excluídas.