Das Hochladen von Dateien in CakePHP schlägt auf mysteriöse Weise fehl
-
13-09-2020 - |
Frage
Ich versuche, eine Datei mithilfe des CakePHP-Hilfsprogramms zum Hochladen von Dateien auf meinen Server hochzuladen.
Ich verwende derzeit CakePHP 1.3 auf meinem Entwicklungscomputer (Mac OSX).
Wenn das Formular gesendet wird, enthält es in den Variablen, die an den Controller übergeben werden, seinen temporären Namen: /var/tmp/name
und dann der Name als Name der Datei.
Wenn ich jedoch versuche, die Datei an einen dauerhafteren Speicherort umzubenennen, schlägt dies fehl, und wenn ich zu dem Speicherort gehe, ist sie nicht vorhanden.
Ich erhalte diese Fehlermeldungen:
Warning (2): move_uploaded_file(Users/chustar/Documents/IMAG0001.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory [APP/controllers/users_controller.php, line 41]
Warning (2): move_uploaded_file() [function.move-uploaded-file]: Unable to move '/private/var/tmp/php98lzsP' to '/Users/chustar/Documents/IMAG0001.jpg' [APP/controllers/users_controller.php, line 41]
Warning (2): Cannot modify header information - headers already sent by (output started at /Library/WebServer/Documents/cake/libs/debugger.php:673) [CORE/cake/
Lösung
Ich erhalte diese Fehlermeldung häufig, wenn die Berechtigungen für das Zielverzeichnis nicht richtig festgelegt sind.Zur Veranschaulichung gehe ich davon aus, dass Sie einen Apache-Webserver betreiben und dass dieser als Benutzer mit Namen ausgeführt wird www
.Das www
Der Benutzer muss Schreibzugriff auf das Zielverzeichnis haben.Es geht nicht um die Berechtigungen Du haben, sondern welche Berechtigungen der Webserver-Benutzer hat.
Wenn Sie feststellen, dass dies nicht das Problem ist, können ein paar weitere Einzelheiten und/oder etwas Code hilfreich sein.