Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Dateiendung herausbekommen

Hallo! Ich hab ein Problem und zwar gebe ich den Usern auf meiner Website Dateien hochzuladen.

Diese möchte ich nach dem Hochladen gerne umbennen, dazu bräuchte ich allerdings die Dateiendung.

Das ist allerdings ein Problem, denn mittels $_FILE kann ich ja entweder an den Namen ($_FILE["upload"]["name"]), inklusive Endung, oder an den Typ kommen ($_FILE["upload"]["type"]). Der Typ bringt mir nichts, da darin nicht die Endung steht. Der Namen kann nicht so einfach aufgesplittet werden.

Klar könnte ich alle Buchstaben nach dem letzten Punkt nehmen, allerdings wäre dann eine Datei mit der Endung .tar.gz plötzlich nurnoch eine .gz-Datei. (Funktioniert zwar dann immer noch, möchte ich aber nicht)

Gibt es also eine Möglichkeit einfach die Endung einer Datei herauszubekommen, die hochgeladen wird?

Hier gehts zum Orginal Eintrag "Dateiendung herausbekommen" im Forum

Antworten

So intelligent ist PHP noch nicht dass es erkennt dass .tar.gz 2 Dateiendungen sind ;-) Solche Ausnahmen wirst du wahrscheinlich ausprogrammieren müssen.

Aber vielleicht gibts ja doch was, wenn ja würds mich auch interessieren.


2.

Naja, das Files Typefeld ist doch schon mal gar nicht so schlecht...
Unter Unix gibts auch das "file" Kommando, das kümmert sich nicht um die Endung
sondern schaut sich die Struktur an :)

Ausserdem:
Es ist egal ob die Datei *.jpg *.Jpg *.JPG *.Jpeg ....... heisst,
der Inhalt oder Type ist wichtig


3.

hm, dass linux keine endungen brauchen würde ist klar... aber s gibt hald immer noch einen zu großen winzigweich-marktanteil und WIN sieht das Ganze dann nur noch als Datenmüll an... im internet braucht mans sowieso!

Ich kann doch nicht etwa über PHP auf UNIX-Befehle zugreifen (wenn der SERVER ein Linux-Server ist?)

$FILES["upload"]["type"] kannst du bezüglich der Endung vergessen. Bei Bildern mag das ja noch funktionieren, allerdings kommt es dann mitunter auch zu Dingen wie diesen: application/octet-stream, da ist dann alles verloren.

Ich habs jetzt dann doch über die Punkte gemacht. ".tar.gz" und ".gz" ist im Prinzip ja sowieso ein Äquivalent!

Meine Lösung (wenns keine Endung gibt, steht in $endung auch keine):
Code:                   In Zwischenablage kopieren (nur IE)
1">




4.

Zitat:
Ich kann doch nicht etwa über PHP auf UNIX-Befehle zugreifen (wenn der SERVER ein Linux-Server ist?)
Ja!
Den Admin fragen, was alles geht...


5.

Zitat:
combie postete
Prinzipiell JA!
und wie macht man sowas?


6.

http://de2.php.net/manual/de/ref.exec.php


7.

Zitat:
combie postete
http://de2.php.net/manual/de/ref.exec.php
ok, merci... mal ein wenig durchschmökern.

Wenn noch jemand eine bessere Idee wegen der Endung hat, bitte immer nur raus damit!


8.

Code:                   In Zwischenablage kopieren (nur IE)
2">




9.

Meine Güte - wie furchtbar umständlich. Wie wäre es hiermit:[doc]pathinfo[/doc]


10.

juhu @Rana: Das dürfte funktionieren. Merci, muss ich gleich mal ausprobieren!

[edit] tja, anscheinend ist die funktion pathinfo auch nicht in der lage ein tar.gz herauszufinden. Die Endung bekomm ich, allerdings bei tar.gz auch nur gz!
Allerdings kann man sich tatsächlich das umständliche "explode" sparen!


11.

Zitat:
Meine Güte - wie furchtbar umständlich
Aber sicher :)


Hier gehts zum Orginal Eintrag "Dateiendung herausbekommen" im Forum
 
phpforum.de | Impressum