Löschen einer Datei in afterDelete() - CakePHP

Ich habe ein Upload-Modell - Bilder enthält, die der user hochgeladen.

Innerhalb der Steuerung, ich rufe:

$this->Upload->delete($id);

Welche Prima funktioniert, löschen Sie den Datensatz aus der Datenbank, aber ich würde auch gerne löschen das entsprechende Bild-Datei.

Habe ich versucht, viele verschiedene Dinge mit den verschiedenen Variablen,..etc, und fand dieser link auf eine ähnliche Frage, aber nichts scheint zu funktionieren - ich kann auch nicht bekommen, es zu löschen, mit jedem dieser versuche:

//at the bottom of my Upload model
function afterDelete() {
    //NONE OF THESE WORK - is this even being called?
    unlink('/img/uploads/rest_logo.jpg');
    unlink('app/webroot/img/uploads/rest_logo.jpg');
    unlink('/app/webroot/img/uploads/rest_logo.jpg');
    unlink('img/uploads/rest_logo.jpg');
    unlink(WWW_ROOT . 'img/uploads/rest_logo.jpg');
    unlink(WWW_ROOT . '/img/uploads/rest_logo.jpg');
    return true;
}

Natürlich werde ich es ändern wollen, um eine dynamische Dateinamen, aber für jetzt, ich kann nicht einmal bekommen es die Datei zu löschen, wenn die hart-Codierung alle anderen möglichen Pfade, die ich mir denken kann.

Gibt es eine Möglichkeit zu testen, was Los ist? Wie ein echo oder... was?

Jede Hilfe oder Richtung, wird sehr geschätzt.

Warum Sie die Pfade hartcodieren anstatt die nur die eine, die Sie als argument an die Funktion?
Ihre Berufung $this->Upload->delete($id); sollten Sie nicht anrufen $this->Upload->afterDelete($id); & Ihr fehlt ein argument in der Funktion $id sollte dies einen Fehler auslöst, hast du error reporting an
Sie haben Privilegien, um in der Lage zu löschen aus diesem Verzeichnis?
Ich hardcoded, nur um zu sehen, ob ich es überhaupt funktioniert
Ihre Annahme richtig ist, afterDelete() wird ausgelöst, wenn Sie anrufen delete.

InformationsquelleAutor Dave | 2011-06-01

Schreibe einen Kommentar