whats new ¦  programming tips ¦  indy articles ¦  intraweb articles ¦  informations ¦  links ¦  interviews
 misc ¦  tutorials ¦  Add&Win Game

Tips (1541)

Database (90)
Files (137)
Forms (107)
Graphic (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Math (76)
Misc (126)
Multimedia (45)
Objects/
ActiveX (51)

OpenTools API (3)
Printing (35)
Strings (83)
System (266)
VCL (242)

Top15

Tips sort by
component


Search Tip

Add new Tip

Add&Win Game

Advertising

45 Visitors Online


 
...get the MIME type of a file?
Autor: James Caldwell
[ Print tip ]  

Tip Rating (26):  
     


{
This code is useful if you are creating a webserver program.
It's very simple, just input the extension of a file and the
function returns the MIME type of that file.

mimetypes.RES is the compiled resource file that contains a string
table with 641 different MIME types.
http://modelingman.freeprohost.com/Downloads/Delphi/MIME/mimetypes.RES

mimetypes.rc is the source file of mimetypes.RES, you can add more
types to this and compile it using brcc32
http://modelingman.freeprohost.com/Downloads/Delphi/MIME/mimetypes.rc
}

{$R mimetypes.RES}

function GetMIMEType(FileExt: string): string;
var
  
I: Integer;
  S: array[0..255] of Char;
const
  
MIMEStart = 101;
  // ID of first MIME Type string (IDs are set in the .rc file
  // before compiling with brcc32)
  
MIMEEnd = 742; //ID of last MIME Type string
begin
  
Result := 'text/plain';
  // If the file extenstion is not found then the result is plain text
  
for I := MIMEStart to MIMEEnd do
  begin
    
LoadString(hInstance, I, @S, 255);
    // Loads a string from mimetypes.res which is embedded into the
    // compiled exe
    
if Copy(S, 1, Length(FileExt)) = FileExt then
    
// "If the string that was loaded contains FileExt then"
    
begin
      
Result := Copy(S, Length(FileExt) + 2, 255);
      // Copies the MIME Type from the string that was loaded
      
Break;
      // Breaks the for loop so that it won't go through every
      // MIME Type after it found the correct one.
    
end;
  end;
end;


 

Rate this tip:

poor
very good


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners