2010-10-13 22 views

Antwort

38
  • copy() kopiert die Datei - Sie haben jetzt 2-Dateien und für große Dateien, kann dies sehr lange
  • rename() ändert den Namen der Datei, die kann bedeuten, es zwischen Verzeichnissen zu verschieben.
  • move_uploaded_file() ist im Grunde das gleiche wie rename(), aber es funktioniert nur für Dateien, die über den Upload-Mechanismus von PHP hochgeladen wurden. Dies ist eine Sicherheitsfunktion, die verhindert, dass Benutzer Ihr Skript dazu bringen, sicherheitsrelevante Daten anzuzeigen.

In der Zukunft schlage ich vor, solche Informationen in der PHP Manual selbst nachschlagen.

+18

+1 für die freundliche RTFM :) –

+0

yeah gute Antwort. –

8

Ich fand dies im Handbuch move_uploaded_file():

Florian S. in H. an der E. [.de] am 17-Aug-2008 09:02

move_uploaded_file (in meinem Setup) macht immer die Dateien 0600 (rw- --- ---) und gehört dem Benutzer, der den Webserver ausführt (Besitzer UND Gruppe). Obwohl das Verzeichnis ein Sticky-Bit hat, das auf die Gruppenberechtigungen gesetzt ist! Ich konnte keine Einstellungen finden, um dies über php.ini oder sogar umask() zu ändern.

Ich möchte mein regulärer Benutzer auf dem Server in der Lage sein, tar cjf das Verzeichnis .., die auf Dateien vollständig im Besitz des Webserver-Prozess-Benutzer fehlschlagen würde; die copy(from, to) Funktion gehorcht dem Sticky-Bit obwohl!

so scheint es, wie copy und rename eine etwas andere Arbeit zu tun.

Verwandte Themen