Auge: Datei-Upload auf Apache2 Server

Beitrag lesen

Hallo

Du schreibst, dass move_uploaded_file() nicht mehr empfehlenswert ist, was wäre denn die Alternative?

Wäre schön, wenn @TS erst einmal schriebe, warum er move_uploaded_file nicht mehr für empfehlenswert hält. Ich finde dazu [edit]im Netz[/edit] nichts und auch der sehr umfangreiche und dennoch hier und da lückenhafte Artikel enthüllt mir dieses Geheimnis beim querlesen nicht.

[edit]Mittlerweile habe ich den Abschnitt im Artikel gefunden. Ob die postulierten Probleme tatsächlich auftreten, kommt auf den Einzelfall (Konfiguration des Servers) an. Es können im Einzelfall keine, einzelne oder alle der genannten Probleme auftreten. Dennpoch kann die von TS geschmähte Funktion schlussendlich benutzt werden, um den Upload zu speichern.[/edit]

Wenn ich den Absoluten Pfad angebe (anstatt 'uploads/) lautet dieser '/var/www/html/image/...' Ich hatte immer ohne / vor var beim testen angegeben. Evtl. muss es auch '/Uploads/' heißen? (Aber eigentlich ja nicht?!?)

Du weißt offensichtlich noch nicht so recht, wie Pfadangaben in unixoiden Systemen funktionieren. Ein Pfad, der mit einem Slash beginnt (z.B. /var/www/html/), ist absolut angegeben. Im Dateisystem heißt das, dass es im Wurzelverzeichnis, auf der obersten Ebene des Dateisystems, ein Verzeichnis var gibt, das wiederum das Verzeichnis www mit dem Unterverzeichnis html enthält.

Daneben gibt es relative Pfadangaben, die, vom gegenwärtigen Standort ausgehend (z.B. auszuführendes Skript, in der Konsole geöffnetes Verzeichnis), notiert werden.

  • Datei im gegenwärtigen Verzeichnis: „index.html“ oder „./index.html“
  • Unterverzeichnis: „verzeichnis“ oder „verzeichnis/“
  • Datei in einem Unterverzeichnis: „verzeichnis/index.html“
  • übergeordnetes Verzeichnis: „../“ (bei Bedarf auch mehrfach notiert („../../../“ für drei Ebenen))
  • Datei im übergeordneten Verzeichnis: „../index.html“

Nun mag es auf der absolut obersten Ebene auch ein Verzeichnis Uploads geben, aber höchstwahrscheinlich meinst du ein gleichnamiges Verzeichnis innerhalb des Webauftritts. Dann sollte es aber auch entweder mit dem korrekten absoluten Pfad oder mit einem relativen Pfad, ausgehend vom laufenden Skript angesprochen werden.

Tip: PHP kennt die Variable $_SERVER['DOCUMENT_ROOT'], mit dem man das Wurzelverzeichnis des Webauftritts innerhalb des Dateisystems des Servers ermitteln kann. Das ist als Ausgangspunkt von projektinternen Pfadangaben hilfreich.

Muss aber ehrlich sagen, dass ich das Script erst einmal zum laufen bringen möchte, bevor ich dann an die Sicherheit gehe. Damit ich da Fehler ausschließen kann.

Allzuoft (sprich: fast immer) heißt, es später zu tun, es nie zu tun. Also tu es gleich.

Tschö, Auge

--
Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
Hohle Köpfe von Terry Pratchett