So.. nun mal zu meinem Vorhaben...
Ich habe ein eigenständiges Script geschrieben welches mir schonmal die Dateien, die aus der Dateizentrale gelöscht wurden und somit mit in der DB mit trash=9 markiert sind, in einer Tabelle auflistet. Soweit, sogut. Nun wollte ich diees Variable dazu nutzen um mittels unlink die Dateien vom Server zu löschen.
Kurze Erläuterung: Mit unlink() lassen sich Dateien von einem Server löschen.
Ok.. das dazu. In meiner Tabelle lasse ich mir den jeweiligen Bildnamen, den Hash, die Dateiendung sowie Trash ausgeben aber wozu den Hash? Ganz einfach....
Im Verzeichnis filearchive werden die Dateien nicht mit ihrem Original Bildtitel gespeichert sondern als Hashes, also ne ellenlange Nummer plus Endung, z.B. so: 1f21083e726ef5a668b550352fbaf2d2.jpg
Ok.. also lasse ich mir Hash und Endung ausgeben und mit diesen beiden müßte ich dann theoretisch auch weiterabeiten da die Dateien auch so auf dem Server liegen. Name und Trash lasse ich nur zur Kontrolle ausgeben.
Arbeiten wir also mit Hash und Endung weiter. Jedoch fiel mir auf daß der Punkt zwischen Dateiname und Endung fehlt, also muß ich diesen wohl in einer Variablen deklarieren und später mittels Verkettungsoperator zwischen Hash und Endung platzieren.
Tja.... wenn jemand Interesse hat würde ich mich freuen wenn wir dieses Script vielleicht dazu bewegen könnten das zu tun was es tun soll und wenn das funktioniert, es evtl. als Modulfür phpwcms aufbereiten.
Zur Zeit bekomme ich eine Fehlermeldung: Warning: unlink(E:/xampp/htdocs/phpw/filearchive/.): Permission denied in...
Ok.. diese Meldung besagt daß das Script keine Zugiffsrechte hat, wobei ich mir da allerdings nicht sicher bin denn wenn ich eine Datei gezielt mit unlink anspreche, wie z.B. so
Code: Select all
unlink ($_SERVER['DOCUMENT_ROOT']. "/test/2.jpg");
Daher denke ich daß ich einen Fehler bei den Variablen habe und daß da zuerst etwas konvertiert werden muß, aber was?
Wie gesagt.. vielleich that ja jemand Interesse mit mir zusammen daran mitzuarbeiten.
Achso... die Verwendung des Scriptes erfolgt auf eigene Gefahr. Ich rate an das Script nur auf em localhost zu verwenden.
Und nochmals.... Ich fange gerade erst mit PHP an, aber ich wills lernen.
Und nun der Code des Scripts:
Code: Select all
<?php
$con = mysqli_connect('localhost', 'user', 'password');
mysqli_select_db($con, "DB");
$res = mysqli_query($con, "Select f_hash, f_ext, f_trash, f_name FROM phpwcms_file WHERE f_trash = 9");
// Tabellenbeginn
echo "<table border='1'>";
// Überschrift
echo "<tr> <td>Lfd. Nr.</td> <td>Name</td>";
echo "<td>Hash</td> <td>Endung</td> <td>Trash</td>";
$lf = 1;
while ($dsatz = mysqli_fetch_assoc($res))
{
echo "<tr>";
echo "<td>$lf</td>";
echo "<td>" . $dsatz["f_name"] . "</td>";
echo "<td>" . $dsatz["f_hash"] . "</td>";
echo "<td>" . $dsatz["f_ext"] . "</td>";
echo "<td>" . $dsatz["f_trash"] . "</td>";
echo "</tr>";
$lf = $lf + 1;
}
//Tabellenende
echo "</table>";
$punkt = '.';
$path = ($_SERVER['DOCUMENT_ROOT']. "/phpw/filearchive/" . $dsatz["f_hash"] . $punkt . $dsatz["f_ext"]);
unlink ($path);
mysqli_close($con);
?>
