Dateityp erkennen
Dateityp erkennen
Hallihallöchen,
Ich habe auf der Festplatte meines Servers Dateien gespeichert. Ich will herausfinden, welchen Typ diese Dateien haben (zb. image/jpeg), sodass ich zb. alle images anzeigen lassen kann, alle textdateien (darunter auch html, css, js) in eine textarea laden kann, und noch ein bisschen spaß damit machen kann. Kann mir jmd. sagen welche Fkt. ich benutzen muss um den Dateitypen einer auf meiner HDD gespeicherten (also der des Servers) zur Laufzeit zu erfragen? (Ich hab da nix brauchbares gefunden)
MfG Naums
Ich habe auf der Festplatte meines Servers Dateien gespeichert. Ich will herausfinden, welchen Typ diese Dateien haben (zb. image/jpeg), sodass ich zb. alle images anzeigen lassen kann, alle textdateien (darunter auch html, css, js) in eine textarea laden kann, und noch ein bisschen spaß damit machen kann. Kann mir jmd. sagen welche Fkt. ich benutzen muss um den Dateitypen einer auf meiner HDD gespeicherten (also der des Servers) zur Laufzeit zu erfragen? (Ich hab da nix brauchbares gefunden)
MfG Naums
.globl truth
truth:
mov r0, #42
mov pc, lr
truth:
mov r0, #42
mov pc, lr
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Dateityp erkennen
Den Dateityp erfragen?
Entweder du schaust dir die Dateiendung an (dazu müssen die natürlich richtig gesetzt sein) oder du musst sozusagen raten und nach den jeweiligen Headern suchen. JPEG, GIF, PNG haben z.B. unterschiedliche, die musst du halt auslesen und je nach dem dann entscheiden.
Bei html, css bzw allgemein "Textdateien" ist das gar nicht so leicht. Dazu musst du die Datei im Prinzip schon fast parsen, um sicherstellen zu können, um welche Art von Datei es sich handelt.
So trivial ist das ganze also auf keinen Fall.
Außer, man beschränkt das auf die Dateiendung.
Entweder du schaust dir die Dateiendung an (dazu müssen die natürlich richtig gesetzt sein) oder du musst sozusagen raten und nach den jeweiligen Headern suchen. JPEG, GIF, PNG haben z.B. unterschiedliche, die musst du halt auslesen und je nach dem dann entscheiden.
Bei html, css bzw allgemein "Textdateien" ist das gar nicht so leicht. Dazu musst du die Datei im Prinzip schon fast parsen, um sicherstellen zu können, um welche Art von Datei es sich handelt.
So trivial ist das ganze also auf keinen Fall.
Außer, man beschränkt das auf die Dateiendung.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
- cloidnerux
- Moderator
- Beiträge: 3123
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Dateityp erkennen
Viele Dateien haben auch am Anfang eine bestimmte zeichenfolge, zip-Archive zB "PK"(siehe Reverse Engineering Artikel). Vlt kommst du damit weiter.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: Dateityp erkennen
Beim Upload der Datei wird die doch vom Server direkt eingestuft als "image/jpeg" zb. Und das geht also nicht für Dateien auf der Festplatte? Ansonsten werde ich wohl die Dateiendung unter die Lupe nehmen müssen. Zumal, naja, viele versch. Dateien will ich ja garnicht benutzen... ^^ ein paar Textdateien (.htm, .js, .css, .ini) und ein paar Bilder. Mehr is da eigentlich auf dem Server nicht anzutreffen ^^
Okay, danke euch. Ich explodier die Dateinamen einfach
Okay, danke euch. Ich explodier die Dateinamen einfach
.globl truth
truth:
mov r0, #42
mov pc, lr
truth:
mov r0, #42
mov pc, lr
Re: Dateityp erkennen
Das könntest du über Mimetypes lösen und PHP hat anscheinend auch die nötige Funktion:
http://www.php.net/manual/en/function.finfo-file.php
http://www.php.net/manual/en/function.finfo-file.php
Re: Dateityp erkennen
nun ists zu spät... ich machs schon mit Dateiendungen. Danke trotzdem
.globl truth
truth:
mov r0, #42
mov pc, lr
truth:
mov r0, #42
mov pc, lr
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: Dateityp erkennen
Es gibt übrigens auch ein Nettes kleines Programm, das anhand der ersten Bytes erkennt um welche Datei es sich handelt, es heisst "file":
Das könntest du aufrufen und dessen Ausgabe parsen.
Edit:
Oh, hab gerade gesehen, das kann auch Mime-Types:
Code: Alles auswählen
$ file /usr/bin/file
/usr/bin/file: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
$ file html/index.php
html/index.php: HTML document text
$ file xstream.jar
xstream.jar: Zip archive data, at least v2.0 to extract
Edit:
Oh, hab gerade gesehen, das kann auch Mime-Types:
Code: Alles auswählen
$ file -i /usr/bin/file
/usr/bin/file: application/x-executable; charset=binary
Haters gonna hate, potatoes gonna potate.
- Xin
- nur zu Besuch hier
- Beiträge: 8859
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Dateityp erkennen
@fat-lobyte: file ist ein schönes Tool, hatte ich schon wieder ganz vergessen. Ich habe es zumindest mal als Link ins Wiki gesetzt.
http://www.proggen.org/doku.php?id=bash ... #programme
http://www.proggen.org/doku.php?id=bash ... #programme
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: Dateityp erkennen
Ja, ich erfeue mich immer wieder daran. Wirklich verdammt nützlich und auf Windows meistens der ausschlaggebende Grund Cygwin zu installieren.Xin hat geschrieben:@fat-lobyte: file ist ein schönes Tool, hatte ich schon wieder ganz vergessen.
Haters gonna hate, potatoes gonna potate.