Entwickler-Ecke
Dateizugriff - MIME Type aus Dateierweiterung bestimmen
dirkil2 - Sa 03.01.09 00:48
Titel: MIME Type aus Dateierweiterung bestimmen
Wie kann ich in Delphi den korrekten MIME-Type zu einer Dateierweiterung bestimmen. Also z.B.:
.zip -> application/x-zip-compressed
Sicherlich kann ich eine Liste hinterlegen und diese dann entsprechend abfragen, aber werden die MIME Types nicht irgendwo in der Registry abgelegt? Oder gibt es eine Systemfunktion, die das macht oder eine INDY- oder JEDI-Komponente?
Bin für jeden Tipp dankbar.
Dirk.
jaenicke - Sa 03.01.09 00:51
Schau dir mal in der Registry den Zweig HKEY_CLASSES_ROOT an ;-).
Da gibt es bei vielen Dateitypen den Wert "Content Type", rate mal was da drin steht. :mrgreen:
BenBE - Sa 03.01.09 02:09
Ich dachte zuerst an so etwas wie "Himmelsrichtung mit dem Kompass bestimmen" (was etwa genauso viel Sinn ergibt, weil die Richtung in die der Kompass zeigt, nicht zwingend Norden sein muss :mrgreen:, aber gut, das ist ein andres Thema) und von daher mal ein kleiner Hinweis, wie man es besser machen kann:
Direkt anhand der Erweiterung auf den Inhalt zu schließen ist zwar theoretisch möglich (wie
jaenicke schon gesagt hat), Detaillierter sind aber Herangehensweisen wie es etwa file unter Unix macht, was anhand des Inhaltes nähere Details über den Content-Type erfragt\ermittelt.
Dunkel - Sa 03.01.09 02:46
BenBE hat folgendes geschrieben : |
Direkt anhand der Erweiterung auf den Inhalt zu schließen ist zwar theoretisch möglich (wie jaenicke schon gesagt hat), Detaillierter sind aber Herangehensweisen wie es etwa file unter Unix macht, was anhand des Inhaltes nähere Details über den Content-Type erfragt\ermittelt. |
Richtig! In unixoiden BS kann man ein Bitmap auch die Dateierweiterung .txt geben, nichts desto trotz wird (meistens) beim öffnen der "Fake.txt" das Bildbearbeitungsprogramm geöffnet. DOS und Windows identifizieren leider einen Dateityp (fast) nur anhand der Dateiendung.
Natürlich kann man von jeder Datei die ersten n Bytes lesen (in der sich hoffentlich eine Art Header befindet) und dadurch auf den Contenttype schließen, nur besitzt nicht jedes Dateiformat ein Header...
Narses - Sa 03.01.09 15:47
Titel: Re: MIME Type aus Dateierweiterung bestimmen
Moin!
dirkil2 hat folgendes geschrieben : |
Wie kann ich in Delphi den korrekten MIME-Type zu einer Dateierweiterung bestimmen. [...]Oder gibt es eine Systemfunktion, die das macht oder eine INDY- oder JEDI-Komponente? |
Schau mal in die Indy9-HTTPServer-Demo:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var MIMEMap: TIdMIMETable;
function TfmHTTPServerMain.GetMIMEType(sFile: TFileName): String; begin result := MIMEMap.GetFileMIMEType(sFile); end; |
Damit sollte das auch gehen. ;)
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!