Erläuterung:
Die Subroutine MIME_TYPE erkennt die 127 gängigsten Dateiendungen und ordnet den entsprechenden MIME-Type zu.
In der beiliegenden Datei PL0011.pm ist die Programmierung als eigenes Perl-Modul ausgeführt, lauffähig sowohl unter Linux/Perl als auch Windows/Active Perl.
sub MIME_TYPE
{
my $Mime_Type = "application/octet-stream"; # default einstellung
my $Endung = $_[0]; # übergebener Dateiname
$Endung =~ tr/A-Z/a-z/; # kovertiert zu Kleinschreibung
my (@DatNamTeile) = split(/\./,$Endung); # Dateiname bei . aufsplitten
$Endung = @DatNamTeile[@DatNamTeile-1]; # letztes Element ist Endung
SWITCH: {
$Mime_Type='image/bmp', last SWITCH if ($Endung eq "bmp");
$Mime_Type='image/gif', last SWITCH if ($Endung eq "gif");
$Mime_Type='image/jpeg', last SWITCH if ($Endung eq "jpeg" || $Endung eq "jpg" || $Endung eq "jpe");
$Mime_Type='image/png', last SWITCH if ($Endung eq "png");
$Mime_Type='image/tiff', last SWITCH if ($Endung eq "tiff" || $Endung eq "tif");
$Mime_Type='application/msword', last SWITCH if ($Endung eq "doc");
$Mime_Type='application/vnd.ms-excel', last SWITCH if ($Endung eq "xls");
$Mime_Type='application/mac-binhex40', last SWITCH if ($Endung eq "hqx");
$Mime_Type='application/pdf', last SWITCH if ($Endung eq "pdf");
$Mime_Type='application/vnd.ms-powerpoint', last SWITCH if ($Endung eq "ppt");
$Mime_Type='application/x-tar', last SWITCH if ($Endung eq "tar");
$Mime_Type='application/zip', last SWITCH if ($Endung eq "zip");
$Mime_Type='model/vrml', last SWITCH if ($Endung eq "wrl" || $Endung eq "vrml");
$Mime_Type='text/css', last SWITCH if ($Endung eq "css");
$Mime_Type='text/html', last SWITCH if ($Endung eq "html" || $Endung eq "htm");
$Mime_Type='text/plain', last SWITCH if ($Endung eq "asc" || $Endung eq "txt");
$Mime_Type='text/richtext', last SWITCH if ($Endung eq "rtx");
$Mime_Type='text/rtf', last SWITCH if ($Endung eq "rtf");
$Mime_Type='text/sgml', last SWITCH if ($Endung eq "sgml" || $Endung eq "sgm");
$Mime_Type='text/xml', last SWITCH if ($Endung eq "xml");
$Mime_Type='video/mpeg', last SWITCH if ($Endung eq "mpeg" || $Endung eq "mpg" || $Endung eq "mpe");
$Mime_Type='audio/mpeg', last SWITCH if ($Endung eq "mpga" || $Endung eq "mp2" || $Endung eq "mp3");
$Mime_Type='application/mac-compactpro', last SWITCH if ($Endung eq "cpt");
$Mime_Type='application/postscript', last SWITCH if ($Endung eq "ai" || $Endung eq "eps" || $Endung eq "ps");
$Mime_Type='application/smil', last SWITCH if ($Endung eq "smi" || $Endung eq "smil");
$Mime_Type='application/vnd.mif', last SWITCH if ($Endung eq "mif");
$Mime_Type='application/vnd.wap.wbxml', last SWITCH if ($Endung eq "wbxml");
$Mime_Type='application/vnd.wap.wmlc', last SWITCH if ($Endung eq "wmlc");
$Mime_Type='application/vnd.wap.wmlscriptc', last SWITCH if ($Endung eq "wmlsc");
$Mime_Type='application/x-bcpio', last SWITCH if ($Endung eq "bcpio");
$Mime_Type='application/x-cdlink', last SWITCH if ($Endung eq "vcd");
$Mime_Type='application/x-chess-pgn', last SWITCH if ($Endung eq "pgn");
$Mime_Type='application/x-cpio', last SWITCH if ($Endung eq "cpio");
$Mime_Type='application/x-csh', last SWITCH if ($Endung eq "csh");
$Mime_Type='application/x-director', last SWITCH if ($Endung eq "dcr" || $Endung eq "dir" || $Endung eq "dxr");
$Mime_Type='application/x-dvi', last SWITCH if ($Endung eq "dvi");
$Mime_Type='application/x-futuresplash', last SWITCH if ($Endung eq "spl");
$Mime_Type='application/x-gtar', last SWITCH if ($Endung eq "gtar");
$Mime_Type='application/x-hdf', last SWITCH if ($Endung eq "hdf");
$Mime_Type='application/x-javascript', last SWITCH if ($Endung eq "js");
$Mime_Type='application/x-koan', last SWITCH if ($Endung eq "skp" || $Endung eq "skd" || $Endung eq "skt" || $Endung eq "skm");
$Mime_Type='application/x-latex', last SWITCH if ($Endung eq "latex");
$Mime_Type='application/x-netcdf', last SWITCH if ($Endung eq "nc" || $Endung eq "cdf");
$Mime_Type='application/x-sh', last SWITCH if ($Endung eq "sh");
$Mime_Type='application/x-shar', last SWITCH if ($Endung eq "shar");
$Mime_Type='application/x-shockwave-flash', last SWITCH if ($Endung eq "swf");
$Mime_Type='application/x-stuffit', last SWITCH if ($Endung eq "sit");
$Mime_Type='application/x-sv4cpio', last SWITCH if ($Endung eq "sv4cpio");
$Mime_Type='application/x-sv4crc', last SWITCH if ($Endung eq "sv4crc");
$Mime_Type='application/octet-stream', last SWITCH if ($Endung eq "bin" || $Endung eq "dms" || $Endung eq "lha" || $Endung eq "lzh" || $Endung eq "exe" || $Endung eq "class");
$Mime_Type='application/oda', last SWITCH if ($Endung eq "oda");
$Mime_Type='application/andrew-inset', last SWITCH if ($Endung eq "ez");
$Mime_Type='application/x-tcl', last SWITCH if ($Endung eq "tcl");
$Mime_Type='application/x-tex', last SWITCH if ($Endung eq "tex");
$Mime_Type='application/x-texinfo', last SWITCH if ($Endung eq "texinfo" || $Endung eq "texi");
$Mime_Type='application/x-troff', last SWITCH if ($Endung eq "t" || $Endung eq "tr" || $Endung eq "roff");
$Mime_Type='application/x-troff-man', last SWITCH if ($Endung eq "man");
$Mime_Type='application/x-troff-me', last SWITCH if ($Endung eq "me");
$Mime_Type='application/x-troff-ms', last SWITCH if ($Endung eq "ms");
$Mime_Type='application/x-ustar', last SWITCH if ($Endung eq "ustar");
$Mime_Type='application/x-wais-source', last SWITCH if ($Endung eq "src");
$Mime_Type='audio/basic', last SWITCH if ($Endung eq "au" || $Endung eq "snd");
$Mime_Type='audio/midi', last SWITCH if ($Endung eq "mid" || $Endung eq "midi" || $Endung eq "kar");
$Mime_Type='audio/x-aiff', last SWITCH if ($Endung eq "aif" || $Endung eq "aiff" || $Endung eq "aifc");
$Mime_Type='audio/x-pn-realaudio', last SWITCH if ($Endung eq "ram" || $Endung eq "rm");
$Mime_Type='audio/x-pn-realaudio-plugin', last SWITCH if ($Endung eq "rpm");
$Mime_Type='audio/x-realaudio', last SWITCH if ($Endung eq "ra");
$Mime_Type='audio/x-wav', last SWITCH if ($Endung eq "wav");
$Mime_Type='chemical/x-pdb', last SWITCH if ($Endung eq "pdb");
$Mime_Type='chemical/x-xyz', last SWITCH if ($Endung eq "xyz");
$Mime_Type='image/ief', last SWITCH if ($Endung eq "ief");
$Mime_Type='image/vnd.wap.wbmp', last SWITCH if ($Endung eq "wbmp");
$Mime_Type='image/x-cmu-raster', last SWITCH if ($Endung eq "ras");
$Mime_Type='image/x-portable-anymap', last SWITCH if ($Endung eq "pnm");
$Mime_Type='image/x-portable-bitmap', last SWITCH if ($Endung eq "pbm");
$Mime_Type='image/x-portable-graymap', last SWITCH if ($Endung eq "pgm");
$Mime_Type='image/x-portable-pixmap', last SWITCH if ($Endung eq "ppm");
$Mime_Type='image/x-rgb', last SWITCH if ($Endung eq "rgb");
$Mime_Type='image/x-xbitmap', last SWITCH if ($Endung eq "xbm");
$Mime_Type='image/x-xpixmap', last SWITCH if ($Endung eq "xpm");
$Mime_Type='image/x-xwindowdump', last SWITCH if ($Endung eq "xwd");
$Mime_Type='model/iges', last SWITCH if ($Endung eq "igs" || $Endung eq "iges");
$Mime_Type='model/mesh', last SWITCH if ($Endung eq "msh" || $Endung eq "mesh" || $Endung eq "silo");
$Mime_Type='text/tab-separated-values', last SWITCH if ($Endung eq "tsv");
$Mime_Type='text/vnd.wap.wml', last SWITCH if ($Endung eq "wml");
$Mime_Type='text/vnd.wap.wmlscript', last SWITCH if ($Endung eq "wmls");
$Mime_Type='text/x-setext', last SWITCH if ($Endung eq "etx");
$Mime_Type='video/quicktime', last SWITCH if ($Endung eq "qt" || $Endung eq "mov");
$Mime_Type='video/x-msvideo', last SWITCH if ($Endung eq "avi");
$Mime_Type='video/x-sgi-movie', last SWITCH if ($Endung eq "movie");
$Mime_Type='x-conference/x-cooltalk', last SWITCH if ($Endung eq "ice");
}
return ($Mime_Type);
} |
Aufruf:
1. Subroutine
$type = &MIME_TYPE("Pfad/Dateiname.gif");
# $type ist hier "image/gif"
Die Subroutine muss im Programmtext gespeichert sein.
2. Modul
A: Speichern Sie das Modul in Ihrem Perlverzeichnis unter
/usr/bin/perl/lib/EIGEN/Mail/PL0011.pm (Linux)
c:\Perl\lib\EIGEN\Mail\PL0011.pm (Windows)
B: Fügen Sie in den Kopf Ihres Perl-Programmes folgende Zeile ein:
use EIGEN::Mail::PL0011 qw(MIME_TYPE);
C: So rufen Sie die Subroutine auf:
$type = MIME_TYPE($Datei); # ohne "&" korrekt!
Die Subroutine muss nicht im Programmtext gespeichert sein.
3. Hinweis
Nicht bekannte Dateiendungen werden 'application/octet-stream ' zugeordnet.
|