Datei kann in PHP nicht entkoppelt werden
Auf einer Website versuche ich, ein Hilfsprogramm zu implementieren, das ausgewählte Bilder aus einem bestimmten Ordner mithilfe eines HTML-Formulars mit Kontrollkästchen und einer PHP-Datei entfernt, mit der die ausgewählten Bilder tatsächlich entfernt werden sollen. Das Formular funktioniert und die Werte des Kontrollkästchens werden analysiert$_POST['images']
, der PHP-Code für den Rest:
$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";
}
}
Wenn versucht wird, z.B. IMG_001.jpg (und thumbnail IMG_001.jpg.thumb) erhalte ich folgende Echo-Ausgabe:
dir={absolute path of the file}
../images/keramiek/IMG_001.jpg
{the correct thumbnail}
deletion of IMG_001.jpg fialed
Was läuft falsch? Warum nicht?unlink()
Datei entfernen? Ich habe versucht, mit Berechtigungen auf 777 gesetzt, aber immer noch keinen Erfolg ...
LÖSUNG:
Nach dem Ändern der Berechtigungen für den Ordner, der die Bilder enthält, funktioniert das Löschen wie gewünscht. Der Besitzer wurde in www-Daten geändert und die Berechtigungen auf 755 gesetzt.
Neu hochgeladene Bilder (über FTP) können ebenfalls gelöscht werden.