rob: Dateien verschieben mit "move_uploaded_file" geht nicht

Beitrag lesen

Hi!

Leider speichert PHP die vom Benutzer hochgeladenen Dateien nur temporär unter einem Zufallsnamen in einem temporären Ordner,

Wieso leider? Das ist der Weg, wie es funktioniert.
Das ist auch gut so. So können noch eventuelle Prüfungen durchgeführt werden.

weswegen ich die Datei per "move_uploaded_file" an einen brauchbaren Ort und vor allem mit brauchbarem Dateinamen verschieben möchte.

Ja, so geht man beim Dateiupload mit PHP vor.

Ich erhalte beim Verschieben mit "move_uploaded_file" jedoch folgende Fehlermeldungen:
Warning: move_uploaded_file(/Library/WebServer/Documents/fileupload/foto.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /Library/WebServer/Documents/fileupload/fileupload.php on line 37

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpo4yGfZ' to '/Library/WebServer/Documents/fileupload/foto.jpg' in /Library/WebServer/Documents/fileupload/fileupload.php on line 37

Genaugenommen sind das keine Fehlermeldungen, sondern nur "Warnings".
Du kannst die unterdrücken, indem du der Funktion move_uploaded_file() ein @-Zeichen vorranstellst und dann selbst eine Fehlermeldung ausgibst.

Jetzt meine Frage: müssen irgendwelche Berechtigungen im Dateisystem gesetzt werden oder muss ich die Konfiguration des Apaches überprüfen? Wo kann man nach dem Fehler suchen?

Arbeitest du mit OS X? Ist aber eigentlich egal...

Nein, mit dem Apache hat das wohl nichts zu tun.
Wie mir scheint, sind die Rechte einfach nur falsch gesetzt.
Welche Rechte hat denn dein Zielordner?
Der Ordner benötigt Schreibrechte.

Rechte kannst du mit "chmod" vergeben. Das weißt du?
Falls nicht, öffne ein Terminal-Fenster und tippe:
man chmod

Schöner Gruß,
rob