Philipp Hasenfratz: kleines Datei-Upload-Problem (Original-Dateiname...)

Beitrag lesen

Halihallo Tom²

Auf der oben genannten Seite wird gesagt, dass man sich auf $_FILES['probe']['name'] nicht verlassen kann (wegen Laufwerksbuchstaben, Verzeichnissen...). Wie komme ich dann an den Dateinamen ran?

Der Dateiname, oder Dateiname+Pfad?
Nun, bei Windows und Unix liesse sich der Dateiname über '' oder '/'
finden (einfach alles nach dem _letzten_ '' oder '/').
Bei Mac (MacOS<10 nehme ich an) wird's etwas komplizierter, denn da
ist das Verzeichnistrennzeichen ein Doppelpunkt ':'.
Folglich: Wenn du den Dateinamen herausfinden möchtest, dürfte sich
"alles nach dem letzten '/' oder '' oder ':'" als zuverlässig
erweisen.
Aber da ein Doppelpunkt ein gültiges Zeichen eines Unix-Namens ist,
könnte es wieder Probleme geben.

Ich hab mal kurz unsere Mac's angeworfen und folgendes
herausgefunden:

Bei MacOS 9 und kleiner mit IE 5.5 und NS 7.1 werden - auch wenn die
Datei in einem Unterverzeichnis liegt - weder Pfadangaben noch
Laufwerksbezeichnungen übertragen. Der Dateiname entspricht also bei
MacOS<=9 _genau_ $_FILES['probe']['name']. Bei anderen Browsern und
MacOS10 weiss ich das nicht, aber falls sich dieses Schema bei allen
Mac-Browsern und -Systemen bewahrheitet, kann man mit der Erkennung
von '/' und '' IMHO nur noch bei VMS etwas falsch machen.

Ach ja, an den Dateinamen kommst du mit Sicherheit. Das Problem ist
der Pfad bzw. die Erkennung wo - falls vorhanden - dieser auf
bestimmen Plattformen endet.

Viele Grüsse

Philipp