Dateityp erkennen

Fragen zum Thema HTML, JavaScript, PHP
Antworten
Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Dateityp erkennen

Beitrag von naums » So Sep 04, 2011 3:15 pm

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
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Dateityp erkennen

Beitrag von Dirty Oerti » So Sep 04, 2011 3:42 pm

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. ;)
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.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Dateityp erkennen

Beitrag von cloidnerux » So Sep 04, 2011 4:20 pm

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

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Dateityp erkennen

Beitrag von naums » So Sep 04, 2011 5:04 pm

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 :)
.globl truth
truth:
mov r0, #42
mov pc, lr

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Dateityp erkennen

Beitrag von nufan » So Sep 04, 2011 5:12 pm

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

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Dateityp erkennen

Beitrag von naums » Mo Sep 05, 2011 4:32 pm

nun ists zu spät... ich machs schon mit Dateiendungen. Danke trotzdem ;)
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Dateityp erkennen

Beitrag von fat-lobyte » Di Sep 06, 2011 1:09 pm

Es gibt übrigens auch ein Nettes kleines Programm, das anhand der ersten Bytes erkennt um welche Datei es sich handelt, es heisst "file":

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
Das könntest du aufrufen und dessen Ausgabe parsen.

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.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Dateityp erkennen

Beitrag von Xin » Di Sep 06, 2011 2:05 pm

@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
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.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Dateityp erkennen

Beitrag von fat-lobyte » Di Sep 06, 2011 2:53 pm

Xin hat geschrieben:@fat-lobyte: file ist ein schönes Tool, hatte ich schon wieder ganz vergessen.
Ja, ich erfeue mich immer wieder daran. Wirklich verdammt nützlich und auf Windows meistens der ausschlaggebende Grund Cygwin zu installieren.
Haters gonna hate, potatoes gonna potate.

Antworten