Wie lösche ich eine Datei mit PHP von meinem Server, wenn sich die Datei in einem anderen Verzeichnis befindet?
Hier ist mein Seitenlayout:
projects/backend/removeProjectData.php
(Diese Datei löscht alle meine Einträge für die Datenbank und sollte auch die zugehörige Datei löschen.)public_files/22.pdf
(Der Ort, an dem sich die Datei befindet.)
Ich benutze die unlink
Funktion:
unlink('../../public_files/' . $fileName);
Dies gibt mir jedoch immer den Fehler, dass die Datei nicht existiert. Irgendwelche Ideen?
Antworten:
Folgendes sollte helfen
realpath
- Gibt den kanonisierten absoluten Pfadnamen zurückis_writable
- Gibt an, ob der Dateiname beschreibbar istunlink
- Löscht eine DateiFühren Sie Ihren Dateipfad über realpath aus, überprüfen Sie, ob der zurückgegebene Pfad beschreibbar ist, und heben Sie in diesem Fall die Verknüpfung auf.
quelle
quelle
file_exists
Funktion hochgestimmt. Andernfalls wird eine Fehlermeldung angezeigt, wenn die Datei nicht vorhanden ist.Überprüfen Sie zunächst Ihre Berechtigungen für die Datei, um sicherzustellen, dass Sie a) sie in Ihrem Skript sehen und b) sie löschen können.
Sie können auch einen Pfad verwenden, der aus dem Verzeichnis berechnet wurde, in dem Sie das Skript gerade ausführen, z.
(in PHP 5.3 glaube ich, dass Sie die
__DIR__
Konstante anstelle von verwenden können,dirname()
aber ich habe sie selbst noch nicht verwendet)quelle
Sie können die Datei mit löschen
Wenn Sie jedoch eine Datei aus ihrem http-Pfad löschen, funktioniert diese Verknüpfung nicht ordnungsgemäß. Sie müssen einen korrekten Dateipfad angeben.
quelle
AIO-Lösung, erledigt alles. Es ist nicht meine Arbeit, aber ich habe mich nur verbessert. Genießen!
quelle
unlink
als Namen für Ihre Funktion verwenden können.Ich weiß, dass diese Frage etwas alt ist, aber dies ist etwas Einfaches, das für mich sehr gut funktioniert, um Bilder aus meinem Projekt zu löschen, an dem ich arbeite.
Der
dirname(__FILE__)
Abschnitt druckt den Basispfad zu Ihrem Projekt aus. Das/img/tasks/
sind zwei Ordner von meinem Basispfad entfernt. Und schließlich gibt es mein Bild, das ich löschen möchte und das Sie zu allem machen können, was Sie brauchen.Damit hatte ich kein Problem damit, auf meine Dateien auf meinem Server zuzugreifen und sie zu löschen.
quelle