Sven Rautenberg: Datei upload - leeres $_POST Array

Beitrag lesen

Moin!

wenn ich mir $_POST anzeigen lasse ist es leer

was logisch ist, wenn dein Formular nur aus dem File-Feld besteht. Denn Dateien landen ausschließlich in $_FILES, und nicht in $_POST, also ist das ein leeres Array. Und evaluiert zu "false" in deiner IF-Abfrage.

Wenn, dann solltest du viel eher $_SERVER['REQUEST_METHOD'] befragen, ob das POST ist, oder die Existenz und Ausgefülltheit von $_FILES heranziehen.

btw. wenn die datei nach erfolgtem upload aus dem temp verzeichnis an den gwünschten ort kopiert wird und die alte überschreibt, kann es da zu problemen kommen wenn gerade ein besucher auf der HP darauf zugreift? wie sperre ich diese? flock() scheidet ja wohl aus da die datei nicht mit fopen() geöffnet wurde.

Vermutlich wird der Besucher eine angeknabberte Datei sehen, ansonsten wird aber nichts passieren. Im Prinzip ist das ein Problem, allerdings wäre die Frage, wie wahrscheinlich das ist.

Dateinamen-Umbenennung geschieht atomar. Also alte Datei umbenennen, um den Namen freizumachen, dann neue Datei so wie die alte benennen, dann alte Datei löschen (falls das Zeit braucht).

- Sven Rautenberg