| 1 | ;;; -*- mode: Lisp -*- |
|---|
| 2 | |
|---|
| 3 | ;;; This file is part of CL-SMTP, the Lisp SMTP Client |
|---|
| 4 | |
|---|
| 5 | |
|---|
| 6 | ;;; Copyright (C) 2004/2005/2006/2007 Jan Idzikowski |
|---|
| 7 | |
|---|
| 8 | ;;; This library is free software; you can redistribute it and/or |
|---|
| 9 | ;;; modify it under the terms of the Lisp Lesser General Public License |
|---|
| 10 | ;;; (http://opensource.franz.com/preamble.html), known as the LLGPL. |
|---|
| 11 | |
|---|
| 12 | ;;; This library is distributed in the hope that it will be useful, |
|---|
| 13 | ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 14 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 15 | ;;; Lisp Lesser GNU General Public License for more details. |
|---|
| 16 | |
|---|
| 17 | ;;; File: attachments.lisp |
|---|
| 18 | ;;; Description: encoding and transmitting login to include a mime attachment |
|---|
| 19 | |
|---|
| 20 | ;;; |
|---|
| 21 | ;;; Contributed by Brian Sorg |
|---|
| 22 | ;;; |
|---|
| 23 | (in-package :cl-smtp) |
|---|
| 24 | |
|---|
| 25 | (eval-when (:compile-toplevel :load-toplevel) |
|---|
| 26 | ;;; Some of the most common file extensions with the mime types and descriptions. |
|---|
| 27 | ;;; Extracted from numberous webpages. |
|---|
| 28 | (defparameter *mime-type-descriptions* |
|---|
| 29 | '(("386" "application/octet-stream" |
|---|
| 30 | "Windows Enhanced Mode Driver or Swap File") |
|---|
| 31 | ("001" "application/x-001" "FAX Datafile") |
|---|
| 32 | ("3GPP" "audio/3gpp" |
|---|
| 33 | "3rd |
|---|
| 34 | Generation Partnership Project. Multimedia over 3rd generation wireless |
|---|
| 35 | networks. H.263 video is the mandatory video format in 3GPP and AMR is |
|---|
| 36 | the main audio/speech format.") |
|---|
| 37 | ("7CB" "application/vnd.ecdis-update" |
|---|
| 38 | "Electronic Chart Display and Information System (ECDIS)") |
|---|
| 39 | ("aa" "audio/audible" "Audible file format (audio books)") |
|---|
| 40 | ("aab" "application/x-authorware-bin" "Macromedia Authorware Binary") |
|---|
| 41 | ("aac" "audio/aac" |
|---|
| 42 | "Advanced Audio Coding File. Part of MPEG-2 and MPEG-4 standard. (Apple iTunes Store)") |
|---|
| 43 | ("aam" "application/x-authorware-map" "Authorware Map (Shockwave?)") |
|---|
| 44 | ("aas" "application/x-authorware-seg" |
|---|
| 45 | "Authorware Shocked Packet (Segment) ") |
|---|
| 46 | ("aba" "text/x-palm-aba" "AddressBook Archive (Palm)") |
|---|
| 47 | ("ac3" "audio/ac3" |
|---|
| 48 | "Adaptive Transform Coder 3 (relates to the bitstream format of Dolby Digital)") |
|---|
| 49 | ("adr" "application/x-msaddr" "Address Book") |
|---|
| 50 | ("aexpk" "application/pgp-keys" "Armored extracted public key (PGP)") |
|---|
| 51 | ("afl" "video/animaflex" "Font file (for Allways) (Lotus 1-2-3)") |
|---|
| 52 | ("ahtml" "magnus-internal/cgi-advertiser" " ") |
|---|
| 53 | ("ai" "application/postscript" |
|---|
| 54 | "Encapsulated PostScript (metafile) (Adobe Illustrator)") |
|---|
| 55 | ("aif" "audio/x-aiff" "Audio Interchange File Format") |
|---|
| 56 | ("aifc" "audio/x-aiff" "Audio Interchange File Format") |
|---|
| 57 | ("aiff" "audio/x-aiff" "Audio Interchange File Format") |
|---|
| 58 | ("aim" "application/x-aim" "AIM file - AOL Instant Messanger") |
|---|
| 59 | ("alt" "application/x-up-alert" "Menu file (WordPerfect Library)") |
|---|
| 60 | ("aos" "application/x-nokia-" "Add-On Software (Nokia 9000)") |
|---|
| 61 | ("arj" "application/x-arj" |
|---|
| 62 | "Compressed file archive created by ARJ or winzip") |
|---|
| 63 | ("art" "image/x-jg" |
|---|
| 64 | "AOL Johnson-Grace Compressed File and Another Ray Tracer Format") |
|---|
| 65 | ("asc" "application/pgp-encrypted" "Armored Encrypted file (PGP)") |
|---|
| 66 | ("asd" "application/astound" "Autosave file (Word for Windows)") |
|---|
| 67 | ("asf" "application/vnd.ms-asf video/x-ms-asf video/x-ms-wm" |
|---|
| 68 | "Windows Media file - Advanced Streaming Format (ASF), NetShow") |
|---|
| 69 | ("asn" "application/astound" " ") |
|---|
| 70 | ("asp" "text/html" |
|---|
| 71 | "Active Server Pages - standard HTML documents interlaced with ActiveX script code ") |
|---|
| 72 | ("asr" "video/x-ms-asf" "Microsoft NetShow") |
|---|
| 73 | ("asx" "video/x-ms-asf application/x-mplayer2" |
|---|
| 74 | "VXtreme (Microsoft streaming AV)") |
|---|
| 75 | ("asz" "application/astound" " ") |
|---|
| 76 | ("au" "audio/basic" "8-bit u-law [PCM] / 8000 Hz") |
|---|
| 77 | ("avi" "video/x-msvideo" "Windows Video file") |
|---|
| 78 | ("axs" "application/olescript" " ") |
|---|
| 79 | ("bas" "text/plain" "BASIC program") |
|---|
| 80 | ("bat" "application/octet-stream" "DOS BAT (Batch) file.") |
|---|
| 81 | ("bcpio" "application/x-bcpio" "Old Binary CPIO") |
|---|
| 82 | ("bexpk" "application/pgp-keys" "binary extracted public key (PGP)") |
|---|
| 83 | ("bin" "application/octet-stream" "Uninterpreted Binary Data") |
|---|
| 84 | ("bk" "application/vnd.framemaker" "FrameMaker book ") |
|---|
| 85 | ("bleep" "application/bleeper" " ") |
|---|
| 86 | ("bmp" "image/x-bmp" "Windows Bitmap (PaintBrush)") |
|---|
| 87 | ("btf" "image/prs.btf" "NationsBank Check Images (also .btif)") |
|---|
| 88 | ("c" "text/plain" "C program") |
|---|
| 89 | ("c++" "text/plain" "C program") |
|---|
| 90 | ("cab" "application/cab" |
|---|
| 91 | "Cabinet file Microsoft installation archive. opersyss=win32, mac cpu=x86, ppc, mips, alpha") |
|---|
| 92 | ("cal" "application/x-msschedplus" "MS schedplus or calendar") |
|---|
| 93 | ("cat" "application/pdf" |
|---|
| 94 | "PDF Catalog (Used with Acrobat Reader and Search plug-in)") |
|---|
| 95 | ("cat" "application/vnd.ms-pki.seccat" "Security Catalog") |
|---|
| 96 | ("ccs" "text/ccs" |
|---|
| 97 | "Cluster Configuration System used with the Global File System (GFS) in Red Hat Linux") |
|---|
| 98 | ("cdda" "audio/aiff" "CD Audio Track") |
|---|
| 99 | ("cda" "audio/x-cda" "CD Audio Track") |
|---|
| 100 | ("cdf" "text/plain" "Channel Definition Format - MS push std") |
|---|
| 101 | ("cdr" "application/x-coreldrw" "Corel Draw (metafile)") |
|---|
| 102 | ("cer" " application/pkix-cert" "Certificatefile") |
|---|
| 103 | ("cfm" "wwwserver/wsapi" "Cold Fusion Markup") |
|---|
| 104 | ("cgi" "magnus-internal/cgi" "Common Gateway Interface") |
|---|
| 105 | ("cgm" "image/cgm" "Computer Graphics Metafile ") |
|---|
| 106 | ("chat" "application/x-chat" " ") |
|---|
| 107 | ("che" "application/x-up-cacheop" " ") |
|---|
| 108 | ("cht" "audio/x-dspeech" |
|---|
| 109 | "Chart (Harvard Graphics 2.0 - SoftCraft Presenter)") |
|---|
| 110 | ("cil" "application/vnd.ms-artgalry" "Clip Gallery Download Packages") |
|---|
| 111 | ("class" "application/java-vm" "Java") |
|---|
| 112 | ("cli" "application/vnd.ms-artgalry" " ") |
|---|
| 113 | ("clp" "application/x-msclip" "Windows Clipboard (metafile)") |
|---|
| 114 | ("cmx" "image/x-cmx" " ") |
|---|
| 115 | ("cnc" "application/x-cnc" "CNC general program data") |
|---|
| 116 | ("cod" "image/cis-cod" |
|---|
| 117 | "Datafile (Forecast Plus - MS Multiplan - StatPac Gold)") |
|---|
| 118 | ("coda" "application/x-coda" " ") |
|---|
| 119 | ("com" "application/octet-stream" |
|---|
| 120 | "DOS COM Executable (similar to exe, but a direct memory image)") |
|---|
| 121 | ("cpi" "image/cpi" "ColorLab Processed Image ") |
|---|
| 122 | ("cpio" "application/x-cpio" "IEEE Std1003.2 (`POSIX') CPIO") |
|---|
| 123 | ("cpt" "application/mac-compactpro" "Compact Pro Archive") |
|---|
| 124 | ("crd" "application/x-mscardfile" "MS cardfile") |
|---|
| 125 | ("crt" "application/x-x509-ca-cert" "Certificatefile") |
|---|
| 126 | ("csh" "application/x-csh" "CSH Script") |
|---|
| 127 | ("csm" "application/x-cu-seeme" "Precompiled headers (Borland C++ 4.5)") |
|---|
| 128 | ("css" "text/css" "Cascading Style Sheets") |
|---|
| 129 | ("csv" "text/csv" |
|---|
| 130 | "Comma-Separated Values (Excel, Lotus 123, FoxPro, MS Outlook)") |
|---|
| 131 | ("ct" "image/" "Iris CT Graphic or Scitex CT Handshake Bitmap ") |
|---|
| 132 | ("cu" "application/x-cu-seeme" " ") |
|---|
| 133 | ("cut" "image/x-halo-cut" "Bitmap graphics") |
|---|
| 134 | ("dat" "application/octet-stream" |
|---|
| 135 | "Data file. Can be anything, text, graphics, binary, ...") |
|---|
| 136 | ("dba" "text/x-palm-dba" "DateBook Archive (Palm)") |
|---|
| 137 | ("dbf" "application/octet-stream" "DataBase File (FoxPro, dBase) ") |
|---|
| 138 | ("dbm" "wwwserver/wsapi" "ColdFusion IIS Plugin") |
|---|
| 139 | ("dca" "application/dca-rft" "IBM Doc Content Arch") |
|---|
| 140 | ("dcr" "application/x-director" "Macromedia Director (Shockwave)") |
|---|
| 141 | ("deb" "application/octet-stream" "Binary for debian UNIX") |
|---|
| 142 | ("der" "application/x-x509-ca-cert" "Certificatefile") |
|---|
| 143 | ("dir" "application/x-director" "Macromedia Director (Shockwave)") |
|---|
| 144 | ("dll" "application/x-msdownload" |
|---|
| 145 | "Dynamically Linked Library (DOS) pe-portable executable opersys=win32, mac cpu=x86, ppc, mips, alpha") |
|---|
| 146 | ("dms" "application/octet-stream" |
|---|
| 147 | "Compressed Amiga file archive created by DISKMASHER") |
|---|
| 148 | ("doc" "application/msword" "MS Word") |
|---|
| 149 | ("dot" "application/msword" "MS Word (Template)") |
|---|
| 150 | ("dsf" "image/x-mgx-dsf" "Micrografx Designer 6 (metafile)") |
|---|
| 151 | ("dst" "application/tajima" "PC-RDist Distribution file ") |
|---|
| 152 | ("dtd" "text/xml" "SGML Document (Type) Definition file") |
|---|
| 153 | ("dus" "audio/x-dspeech" "Readiris font dictionary") |
|---|
| 154 | ("dvi" "application/x-dvi" "TeX DVI (Device Independent)") |
|---|
| 155 | ("dwc" "application/dwc" "compressed archive") |
|---|
| 156 | ("dwf" "drawing/x-dwf" "Autodesk WHIP! Drawing Web file") |
|---|
| 157 | ("dwg" "application/x-acad" "AutoCAD Drawing") |
|---|
| 158 | ("dxf" "application/vnd.dxf" |
|---|
| 159 | "Drawing eXchange Format, Data Exchange File, AutoCAD (vector)") |
|---|
| 160 | ("dxr" "application/x-director" "Macromedia Director (Shockwave)") |
|---|
| 161 | ("ebk" "application/x-expandedbook" " ") |
|---|
| 162 | ("emf" "image/x-emf" |
|---|
| 163 | "Enhanced metafile created in Microsoft Windows and Visio 2002 applications") |
|---|
| 164 | ("eml" "message/rfc822" |
|---|
| 165 | "MS Internet Mail Message (Outlook Express and others)") |
|---|
| 166 | ("enc" "application/pre-encrypted" |
|---|
| 167 | "Pre-encrypted Data (also Sniffer trace)") |
|---|
| 168 | ("eps" "application/postscript" "Encapsulated PostScript (raster)") |
|---|
| 169 | ("erf" "application/x-hsp-erf" " ") |
|---|
| 170 | ("es" "audio/echospeech" " ") |
|---|
| 171 | ("etf" "image/x-etf" "Enriched Text file") |
|---|
| 172 | ("etx" "text/x-setext" "Structure Enchanced Text") |
|---|
| 173 | ("evy" "application/x-envoy" "Document (WordPerfect Envoy)") |
|---|
| 174 | ("exe" "application/x-pe-" |
|---|
| 175 | "pe-portable executable opersys=win32, mac cpu=x86, ppc, mips, alpha") |
|---|
| 176 | ("fdf" "application/vnd.fdf" "acrobat reader") |
|---|
| 177 | ("fh4" "image/x-freehand" "Vector graphics (Aldus FreeHand 4.x)") |
|---|
| 178 | ("fh5" "image/x-freehand" "Freehand 5") |
|---|
| 179 | ("fhc" "image/x-freehand" "Freehand") |
|---|
| 180 | ("fif" "image/fif" "Fractal Image Format file") |
|---|
| 181 | ("fla" "application/x-shockwave-flash" " ") |
|---|
| 182 | ("flac" "audio/flac" "Free Lossless Audio Codec") |
|---|
| 183 | ("flc" "video/flc " "FLIC Animated Picture Autodesk ") |
|---|
| 184 | ("fli" "video/fli " "FLIC Animated Picture Autodesk ") |
|---|
| 185 | ("fm" "application/vnd.framemaker " "FrameMaker Document") |
|---|
| 186 | ("fm3" "application/x-maker " "FrameMaker") |
|---|
| 187 | ("fm4" "application/vnd.framemaker" "FrameMaker") |
|---|
| 188 | ("fm5" "application/vnd.framemaker" "FrameMaker") |
|---|
| 189 | ("fml" "application/fml" " ") |
|---|
| 190 | ("fp5" "application/filemaker5" "FileMaker Pro") |
|---|
| 191 | ("frl" "application/freeloader" "FormFlow file") |
|---|
| 192 | ("frm" "application/vnd.framemaker" "FrameMaker") |
|---|
| 193 | ("fs" "application/X-FSRecipe" " ") |
|---|
| 194 | ("g3f" "image/g3fax" "Group III FAX") |
|---|
| 195 | ("gb" "application/chinese-gb" "Chinese Text") |
|---|
| 196 | ("gif" "image/gif" |
|---|
| 197 | "GIF - Graphics Interchange Format - Compuserve (raster)") |
|---|
| 198 | ("gsd" "audio/x-gsm" "GSM Internet Realtime Audio ") |
|---|
| 199 | ("gsm" "audio/x-gsm" "Raw GSM 6.10 Audio Stream ") |
|---|
| 200 | ("gtar" "application/x-gtar" "Gnu Tar") |
|---|
| 201 | ("gz" "application/x-gzip" "Unix Gzip (gnu-compress ecnapsulation)") |
|---|
| 202 | ("hdf" "application/x-hdf" "NCSA HDF (Hierarchical Data Format)") |
|---|
| 203 | ("hdml" "text/x-hdml" " ") |
|---|
| 204 | ("hlb" "vms/help" "VMS help libraries") |
|---|
| 205 | ("hlp" "application/x-mshelp" "Windows Help") |
|---|
| 206 | ("hpgl" "application/vnd.hp-HPGL" "HP Graphic Language") |
|---|
| 207 | ("hqx" "application/mac-binhex40" |
|---|
| 208 | "BinHex 4.0 Format - Macintosh Binary to ASCII conversion.") |
|---|
| 209 | ("htm" "text/html" "HTML - HyperText Markup Language") |
|---|
| 210 | ("html" "text/html" "HTML - HyperText Markup Language") |
|---|
| 211 | ("hz" "application/chinese-hz" "Chinese") |
|---|
| 212 | ("ica" "application/x-ica" |
|---|
| 213 | "Bitmap graphics (Image Object Content Architecture)") |
|---|
| 214 | ("ice" "x-conference/x-cooltalk" " ") |
|---|
| 215 | ("ico" "image/ico" "Windows icon") |
|---|
| 216 | ("icq" "application/x-icq" "Saved ") |
|---|
| 217 | ("ics" "text/calendar" "iCalendar Calendar Data (Mac)") |
|---|
| 218 | ("ief" "image/ief" "Image Exchange Format") |
|---|
| 219 | ("iff" "image/iff " "Amiga Bitmap Graphic ") |
|---|
| 220 | ("iges" "model/iges" " ") |
|---|
| 221 | ("img" "image/img" |
|---|
| 222 | "Venture Publisher, GEM Draw (bit mapped), AutoCAD CAD-Camera, others") |
|---|
| 223 | ("inc" "text/plain" " ") |
|---|
| 224 | ("inf" "application/x-setupscript" |
|---|
| 225 | "Setup scripts (For Installing Drivers, etc.), Autorun - auto-start file for a CD-ROM") |
|---|
| 226 | ("ins" "application/x-NET-Install" "Data (WordPerfect)") |
|---|
| 227 | ("ipx" "application/x-ipix" "IPIX AV file") |
|---|
| 228 | ("isapi" "wwwserver/isapi" |
|---|
| 229 | "Internet Server API - Application Program(ming) Interface") |
|---|
| 230 | ("ivr" "i-world/i-vrml" "Virtual Reality World Live Picture ") |
|---|
| 231 | ("jar" "application/java-archive" " ") |
|---|
| 232 | ("java" "text/plain" " ") |
|---|
| 233 | ("jfx" "application/octet-stream" |
|---|
| 234 | "eFax Fax Document (J2 Global Communications ") |
|---|
| 235 | ("jpe" "image/jpeg" "JPEG-JFIF - Joint Photographic Experts Group") |
|---|
| 236 | ("jpeg" "image/jpeg" "JPEG-JFIF - Joint Photographic Experts Group") |
|---|
| 237 | ("jpg" "image/jpeg" |
|---|
| 238 | "JPEG-JFIF - Joint Photographic Experts Group (raster)") |
|---|
| 239 | ("jps" "image/x-jps" "Stereo Image") |
|---|
| 240 | ("js" "application/x-javascript" "Java Script") |
|---|
| 241 | ("jsc" "application/x-javascript-config" " ") |
|---|
| 242 | ("jsp" "magnus-internal/jsp" "Java Script") |
|---|
| 243 | ("la" "audio/nspaudio" "Netscape Packetized audio ") |
|---|
| 244 | ("latex" "application/x-latex" "LaTeX Source") |
|---|
| 245 | ("ldif" "text/x-ldif" |
|---|
| 246 | "LDAP Data Interchange Format ( Netscape Address Book)") |
|---|
| 247 | ("lha" "application/octet-stream" "LHA Archive") |
|---|
| 248 | ("lisp" "text/plain" "Lisp Files") |
|---|
| 249 | ("lma" "audio/nspaudio" "Netscape Packetized audio ") |
|---|
| 250 | ("loe" "application/vnd.framemaker" "FrameMaker list of exhibits ") |
|---|
| 251 | ("lof" "application/vnd.framemaker" "FrameMaker list of figures ") |
|---|
| 252 | ("lot" "application/vnd.framemaker" "FrameMaker list of tables ") |
|---|
| 253 | ("lwp" "WordPro 9.5 " " ") |
|---|
| 254 | ("lzh" "application/octet-stream" "compressed") |
|---|
| 255 | ("lzs" "application/octet-stream" "compressed") |
|---|
| 256 | ("lzx" "application/octet-stream" "compressed") |
|---|
| 257 | ("m13" "application/x-msmediaview" "MS mediaview") |
|---|
| 258 | ("m14" "application/x-msmediaview" "MS mediaview") |
|---|
| 259 | ("m3u" "audio/x-mpegurl" "Music Playlist (Winamp)") |
|---|
| 260 | ("m4a" "audio/" "Apple iTunes AAC and ALE unprotected") |
|---|
| 261 | ("ma" "application/mathmetica" "Mathmetica Notebook") |
|---|
| 262 | ("m4p" "audio/" "Apple iTunes AAC protected") |
|---|
| 263 | ("m4b" "audio/" "Apple iTunes AAC protected autiobook") |
|---|
| 264 | ("man" "application/x-troff-man" "Troff w/MAN Macros") |
|---|
| 265 | ("map" "application/x-httpd-imap" "Image Configuration File (HTML Image Map)") |
|---|
| 266 | ("mbd" "application/mbedlet" " ") |
|---|
| 267 | ("mcf" "image/vasa" "Mathcad font") |
|---|
| 268 | ("mda" "application/x-msaccess" "MS Access (May not be desirable)") |
|---|
| 269 | ("mdb" "application/x-msaccess" "MS access") |
|---|
| 270 | ("me" "application/x-troff-me" "Troff w/ME Macros") |
|---|
| 271 | ("mesh" "model/mesh" " ") |
|---|
| 272 | ("mfp" "application/mirage" " ") |
|---|
| 273 | ("mht" "message/rfc822" "Microsoft Web Archiv") |
|---|
| 274 | ("mid" "audio/x-midi" "MIDI") |
|---|
| 275 | ("midi" "audio/x-midi" "MIDI") |
|---|
| 276 | ("mif" "application/vnd.mif" "Maker Interchange Format (FrameMaker)") |
|---|
| 277 | ("mime" "message/rfc822" |
|---|
| 278 | "base64 (6-bit) is the standard for encoding binary attachme") |
|---|
| 279 | ("mk" "application/vnd.framemaker" "FrameMaker") |
|---|
| 280 | ("mmf" "application/x-smaf application/vnd.smaf" |
|---|
| 281 | "SMAF = \"Synthetic music Mobile Application Format\" - Polyphonic Ringtone File for Phones - Yamaha") |
|---|
| 282 | ("mmm" "application/pdf" "Acrobat Media Clip") |
|---|
| 283 | ("mny" "application/x-msmoney" "MS money") |
|---|
| 284 | ("mocha" "application/x-javascript" "Java Script") |
|---|
| 285 | ("mol" "chemical/x-mdl-molfile" "MDL Molfile ") |
|---|
| 286 | ("mov" "video/quicktime" "QuickTime digital video") |
|---|
| 287 | ("movie" "video/x-sgi-movie" "SGI \"movieplayer\" movie") |
|---|
| 288 | ("mp2" "audio/mpeg" "MPEG Audio Stream, Layer II ") |
|---|
| 289 | ("mp3" "audio/mpeg" "MPEG Audio Stream, Layer III ") |
|---|
| 290 | ("mp4" "video/mp4v-es" |
|---|
| 291 | "MPEG Audio Stream, Layer IV (QuickTime and RealPlayer)") |
|---|
| 292 | ("mpa" "audio/mpeg" "MPEG Audio Stream, Layer I, II or III ") |
|---|
| 293 | ("mpe" "video/mpeg" "MPEG - Motion Picture Experts Group") |
|---|
| 294 | ("mpeg" "video/mpeg" "MPEG - Motion Picture Experts Group") |
|---|
| 295 | ("mpg" "video/mpeg" "MPEG - Motion Picture Experts Group") |
|---|
| 296 | ("mpga" "audio/mpeg" " ") |
|---|
| 297 | ("mpire" "application/x-mpire" " ") |
|---|
| 298 | ("mpl" "application/x-mpire" " ") |
|---|
| 299 | ("mpp" "application/vnd.ms-project" "MS Project") |
|---|
| 300 | ("mpt" "application/vnd.ms-project" "MS Project") |
|---|
| 301 | ("mpv" "application/vnd.ms-project" "MS Project view") |
|---|
| 302 | ("mpw" "application/vnd.ms-project" "MS Project") |
|---|
| 303 | ("mpx" "application/vnd.ms-project" "MS Project") |
|---|
| 304 | ("ms" "application/x-troff-ms" "Troff w/MS Macros") |
|---|
| 305 | ("msh" "model/mesh" "2 and 2-D visualization") |
|---|
| 306 | ("n2p" "application/n2p" " ") |
|---|
| 307 | ("nc" "application/x-netcdf" "Unidata netCDF data file") |
|---|
| 308 | ("npx" "application/x-netfpx" " ") |
|---|
| 309 | ("nsc" "application/x-nschat" "Noder file (Polish)") |
|---|
| 310 | ("nsf" "application/x-notes" "Lotus Notes ") |
|---|
| 311 | ("ntf" "application/x-notes" "Lotus Notes ") |
|---|
| 312 | ("ocx" "application/x-oleobject" |
|---|
| 313 | "Object Linking and Embedding (OLE) Control Extension (ActiveX Control)") |
|---|
| 314 | ("oda" "application/oda" "ODA/ODIF Open Document Architecture ") |
|---|
| 315 | ("ods" "application/vnd.oasis.opendocument.spreadsheet" |
|---|
| 316 | "Open Office Version 2 spreedsheet") |
|---|
| 317 | ("odt" "application/vnd.oasis.opendocument.text;" |
|---|
| 318 | "Open Office Version 2 writer") |
|---|
| 319 | ("odp" "application/vnd.oasis.opendocument.presentation" |
|---|
| 320 | "Open Office Version 2 presentor") |
|---|
| 321 | ("ofml" "application/fml" " ") |
|---|
| 322 | ("ogg" "audio/x-ogg" "Ogg Vorbis open-source audio format") |
|---|
| 323 | ("olb" "vms/olb" "Vax Object Library or MS Project Object Library") |
|---|
| 324 | ("or2" "application/x-organizer" "Lotus Organizer") |
|---|
| 325 | ("ovl" "application/octet-stream" "PC OVL File") |
|---|
| 326 | ("pac" "application/x-ns-proxy-autoconfig" " ") |
|---|
| 327 | ("page" "application/x-coda" " ") |
|---|
| 328 | ("pbd" "application/vnd.powerbuilder6" "Phone book (FaxNOW! - Faxit)") |
|---|
| 329 | ("pbm" "image/x-portable-bitmap" "PBM Bitmap Format") |
|---|
| 330 | ("pcd" "image/x-photo-cd" "Kodak Photo CD (raster)") |
|---|
| 331 | ("pcl" "application/pcl" " |
|---|
| 332 | Printer Control Language (HP)") |
|---|
| 333 | ("pcx" "image/pcx" "PC Paintbrush (ZSoft Image)") |
|---|
| 334 | ("pdb" "text/x-palm-pdb" "Palm Database File") |
|---|
| 335 | ("pdf" "application/pdf" "Portable Document Format (Adobe Acrobat)") |
|---|
| 336 | ("pfm" "application/pdf" "Acrobat Font") |
|---|
| 337 | ("pfr" "application/font-tdpfr" " ") |
|---|
| 338 | ("pgm" "image/x-portable-graymap" "PBM Graymap Format") |
|---|
| 339 | ("pgp" "application/pgp-encrypted" "PGP Encrypted file ") |
|---|
| 340 | ("pgr" "text/parsnegar-document" " ") |
|---|
| 341 | ("php3" "application/x-httpd-php3" " ") |
|---|
| 342 | ("phtml" "application/x-httpd-php" "PHP Script ") |
|---|
| 343 | ("pic" "image/pict" "Macintosh QuickDraw format (metafile)") |
|---|
| 344 | ("pict" "image/pict" "Macintosh QuickDraw format (metafile)") |
|---|
| 345 | ("pif" "application/x-mspif" "Program Information File (Windows)") |
|---|
| 346 | ("pkr" "application/pgp-keys" "Public Keyring (PGP)") |
|---|
| 347 | ("pnc" "text/x-palm-pnc" "Palm Network Configuration File") |
|---|
| 348 | ("png" "image/png" "Portable Network Graphics") |
|---|
| 349 | ("pnm" "image/x-portable-anymap" "PBM Anymap Format") |
|---|
| 350 | ("pot" "application/ms-powerpoint" "MS PowerPoint template") |
|---|
| 351 | ("ppa" "application/vnd.ms-powerpoint" "MS PowerPoint addin") |
|---|
| 352 | ("ppm" "image/x-portable-pixmap" "PBM Pixmap Format") |
|---|
| 353 | ("pps" "application/ms-powerpoint" "MS PowerPoint Slideshow") |
|---|
| 354 | ("ppt" "application/ms-powerpoint" "MS PowerPoint Presentation") |
|---|
| 355 | ("ppz" "applications/ms-powerpoint" "MS PowerPoint Animation") |
|---|
| 356 | ("pqa" "text/x-palm-pqa" "Palm Query Application") |
|---|
| 357 | ("pqf" "application/x-cprplayer" " ") |
|---|
| 358 | ("pqi" "application/cprplayer" "Power Quest Drive imaging") |
|---|
| 359 | ("prc" "text/x-palm-prc" "Palm Application") |
|---|
| 360 | ("prvkr" "application/pgp-keys" "Private Keyring (PGP)") |
|---|
| 361 | ("ps" "application/postscript" "PostScript") |
|---|
| 362 | ("psd" "image/x-photoshop" "Adobe PhotoShop Image") |
|---|
| 363 | ("psr" "application/datawindow" "Project Scheduler Resource file") |
|---|
| 364 | ("ptlk" "application/listenup" " ") |
|---|
| 365 | ("pub" "application/x-mspublisher" "MS publisher or PageMaker 2") |
|---|
| 366 | ("pubkr" "application/pgp-keys" "Public Keyring (PGP)") |
|---|
| 367 | ("push" "multipart/x-mixed-replace" " ") |
|---|
| 368 | ("qd3" "x-world/x-3dmf" "Data file - segment 3 (Omnis Quartz)") |
|---|
| 369 | ("qd3d" "x-world/x-3dmf" " ") |
|---|
| 370 | ("qrt" "application/quest" "Qrt ray tracing graphics") |
|---|
| 371 | ("qt" "video/quicktime" "QuickTime") |
|---|
| 372 | ("ra" "audio/x-realaudio" "Music (RealAudio)") |
|---|
| 373 | ("ram" "audio/x-pn-realaudio" "Real Audio Player") |
|---|
| 374 | ("ras" "image/x-cmu-raster" "Sun Raster Format (raster)") |
|---|
| 375 | ("rax" "audio/" "RealAudio 10 - RealMedia Streaming File") |
|---|
| 376 | ("rgb" "image/x-rgb" "RGB Color Image") |
|---|
| 377 | ("rip" "image/rip" "Graphics (Remote Access)") |
|---|
| 378 | ("rm" "audio/x-pn-realaudio" " ") |
|---|
| 379 | ("rmf" "audio/x-rmf" "Rich Music Format audio file from Beatnik") |
|---|
| 380 | ("rmi" "audio/mid" "MIDI File ") |
|---|
| 381 | ("roff" "application/x-troff" "Troff") |
|---|
| 382 | ("rpm" "audio/x-pn-realaudio-plugin" |
|---|
| 383 | "Real Audio Plugin and RedHat Package Manager") |
|---|
| 384 | ("rrf" "application/x-InstallFromTheWeb" " ") |
|---|
| 385 | ("rtc" "application/rtc" " ") |
|---|
| 386 | ("rtf" "application/rtf" "Rich Text Format (Microsoft)") |
|---|
| 387 | ("rtx" "text/richtext" "MIME Richtext format (see also rtf)") |
|---|
| 388 | ("rtsp" "application/x-rtsp" |
|---|
| 389 | "QuickTime Real-Time Streaming Protocol File ") |
|---|
| 390 | ("sb" "application/x-xsb" "Superbook") |
|---|
| 391 | ("sbx" "application/x-xsb" |
|---|
| 392 | "ArcView Spatial Index For Read-Write Shapefiles ") |
|---|
| 393 | ("sca" "application/x-supercard" "Datafile (SCA)") |
|---|
| 394 | ("scp" "text/x-palm-scp" "Palm Network Script File") |
|---|
| 395 | ("sdp" "application/sdp" "Scalable Multicast (RealNetworks)") |
|---|
| 396 | ("ser" "application/java-" " ") |
|---|
| 397 | ("sgm" "text/x-sgml" "Standard Generalized Markup Lang (SGML)") |
|---|
| 398 | ("sgml" "text/x-sgml" "Standard Generalized Markup Lang (SGML)") |
|---|
| 399 | ("sh" "application/x-sh" "SH Script") |
|---|
| 400 | ("shar" "application/x-shar" "Sh Shar") |
|---|
| 401 | ("shtml" "magnus-internal/parsed-html" " ") |
|---|
| 402 | ("shw" "application/presentations" |
|---|
| 403 | "Presentation (Harvard Graphics 2.0 - CorelShow)") |
|---|
| 404 | ("sig" "application/pgp-signature" "Detached signature file (PGP)") |
|---|
| 405 | ("silo" "model/mesh" " ") |
|---|
| 406 | ("sit" "application/x-stuffit" |
|---|
| 407 | "StuffIt - Macintosh Compression Format. By Aladdin for Mac.") |
|---|
| 408 | ("sitx" "application/x-stuffit" |
|---|
| 409 | "StuffIt X file format integrates compression with security and safety options. By Aladdin for Mac.") |
|---|
| 410 | ("skd" "application/x-koan" " ") |
|---|
| 411 | ("skm" "application/x-koan" " ") |
|---|
| 412 | ("skp" "application/x-koan" " ") |
|---|
| 413 | ("skr" "application/pgp-keys" "Private Keyring (PGP)") |
|---|
| 414 | ("skt" "application/x-koan" " ") |
|---|
| 415 | ("smil" "application/smil" |
|---|
| 416 | "SMIL Synchronized Multimedia Integration Language. App:RealPlayer") |
|---|
| 417 | ("sml" "application/smil" |
|---|
| 418 | "SMIL Synchronized Multimedia Integration Language") |
|---|
| 419 | ("smp" "application/studiom" "Sample (sound file)") |
|---|
| 420 | ("snd" "audio/basic" "8-bit u-law [PCM] / 8000 Hz Audio") |
|---|
| 421 | ("spc" "text/x-palm-spc" "Palm Configuration File") |
|---|
| 422 | ("spl" "application/futuresplash" "FutureSplash from FutureWave Sftwr") |
|---|
| 423 | ("spr" "application/x-sprite" "Document letter (Sprint)") |
|---|
| 424 | ("sprite" "application/x-sprite" " ") |
|---|
| 425 | ("src" "application/x-wais-source" "WAIS Source") |
|---|
| 426 | ("stk" "application/hstu" " ") |
|---|
| 427 | ("stream" "audio/x-qt-stream" " ") |
|---|
| 428 | ("sty" "application/msword" "MS Word Style sheet") |
|---|
| 429 | ("sv4cpio" "application/x-sv4cpio" "SVR4 CPIO") |
|---|
| 430 | ("sv4crc" "application/x-sv4crc" "SVR4 CPIO w/CRC") |
|---|
| 431 | ("svf" "image/vnd" " ") |
|---|
| 432 | ("svh" "image/svh" " ") |
|---|
| 433 | ("svr" "x-world/x-svr" " ") |
|---|
| 434 | ("swf" "application/x-shockwave-flash" |
|---|
| 435 | "Macromedia Flash Format File for animations") |
|---|
| 436 | ("sxc" "application/vnd.sun.xml.calc" |
|---|
| 437 | "Open Office Version 1 Spreedsheet") |
|---|
| 438 | ("sxi" "application/vnd.sun.xml.impress" |
|---|
| 439 | "Open Office Version 1 Presentations") |
|---|
| 440 | ("sxw" " application/vnd.sun.xml.writer" |
|---|
| 441 | "Open Office Version 1 Writer") |
|---|
| 442 | ("syl" "application/sylk" |
|---|
| 443 | "SYLK - Symbolic Link WingZ/Excel/Lotus (old MultiPlan form") |
|---|
| 444 | ("sys" "application/octet-stream" "PC System File") |
|---|
| 445 | ("talk" "application/talker" "Text to Speech ") |
|---|
| 446 | ("tar" "application/x-tar" "4.3BSD Tar ") |
|---|
| 447 | ("targa" "image/targa" "Targa Image File") |
|---|
| 448 | ("tbk" "application/toolbook" "Memo backup (dBASE IV - FoxPro)") |
|---|
| 449 | ("tcl" "application/x-tcl" "TCL Script") |
|---|
| 450 | ("tda" "text/x-palm-tda" "ToDo Archive (Palm)") |
|---|
| 451 | ("tex" "application/x-tex" "TeX Source") |
|---|
| 452 | ("texi" "application/x-texinfo" "Texinfo") |
|---|
| 453 | ("texinfo" "application/x-texinfo" "Texinfo") |
|---|
| 454 | ("tga" "image/targa" "Targa/Truevision Image File") |
|---|
| 455 | ("tgz" "application/x-gzip" "UNIX GTar Arvhive") |
|---|
| 456 | ("tif" "image/tiff" "TIFF - Tag Image File Format") |
|---|
| 457 | ("tiff" "image/tiff" "TIFF - Tagged Image File Format") |
|---|
| 458 | ("tlk" "application/x-tlk" " ") |
|---|
| 459 | ("tmv" "application/x-Parable-Thing" "Template (TextMaker)") |
|---|
| 460 | ("toc" "application/vnd.framemaker" "FrameMaker TOC") |
|---|
| 461 | ("tr" "application/x-troff" "Troff") |
|---|
| 462 | ("trm" "application/x-msterminal" "MS terminal") |
|---|
| 463 | ("tsi" "audio/tsplayer" " ") |
|---|
| 464 | ("tsp" "application/dsptype" "Windows Telephony Service Provider") |
|---|
| 465 | ("tsv" "text/tab-separated-values" "Tab Separated Values") |
|---|
| 466 | ("txt" "text/plain" "Plain Text") |
|---|
| 467 | ("uin" "application/x-icq" "ICQ 2001+ Saved ICQ Contact Information ") |
|---|
| 468 | ("url" "application/x-url" |
|---|
| 469 | "wwwserver/redirection application/internet-shortcut " |
|---|
| 470 | "Uniform resource Locator (Internet Address)") |
|---|
| 471 | ("ustar" "application/x-ustar" "IEEE Std1003.2 (``POSIX'') Tar") |
|---|
| 472 | ("v5d" "application/vis5d" "5-D data set visualization") |
|---|
| 473 | ("vbd" "application/activexdocument" "ActiveX file") |
|---|
| 474 | ("vcs" "text/x-vcalendar" |
|---|
| 475 | "Personal Data Interchange (PDI) Calendar entry - Outlook") |
|---|
| 476 | ("vcd" "application/x-cdlink" "VirtualDrive CD Image File ") |
|---|
| 477 | ("vcf" "text/x-vcard" "vCard (Business Card)") |
|---|
| 478 | ("vdo" "video/vdo" "VDOLive Script Video image (Story Board)") |
|---|
| 479 | ("vgm" "video/x-videogram" " ") |
|---|
| 480 | ("vgp" "video/x-videogram-plugin" " ") |
|---|
| 481 | ("vgx" "video/x-videogram" " ") |
|---|
| 482 | ("viv" "video/vnd.vivo" "VivoActive Player Video file") |
|---|
| 483 | ("vivo" "video/vnd.vivo" " ") |
|---|
| 484 | ("vmd" "application/vocaltec-media-desc" " ") |
|---|
| 485 | ("vmf" "application/vocaltec-media-file" |
|---|
| 486 | "Font characteristics (Ventura Publisher)") |
|---|
| 487 | ("vob" "video/dvd" "DVD Video Movie File") |
|---|
| 488 | ("vox" "audio/voxware" "Vox Audio") |
|---|
| 489 | ("vqe" "audio/x-twinvq-plugin" "Yamaha Sound-VQ Locator file") |
|---|
| 490 | ("vqf" "audio/x-twinvq" "Yamaha Sound-VQ file") |
|---|
| 491 | ("vql" "audio/x-twinvq" "Yamaha Sound-VQ Locator file") |
|---|
| 492 | ("vrml" "model/vrml" " ") |
|---|
| 493 | ("vrt" "x-world/x-vrt" " ") |
|---|
| 494 | ("vts" "workbook/formulaone" |
|---|
| 495 | "Forumle One - A Java Spread sheet and report generator from ") |
|---|
| 496 | ("waf" "plugin/wanimate" |
|---|
| 497 | "Mayim's WAF Compiler file for interactive 3D with Walkabout browser plug-in") |
|---|
| 498 | ("wan" "plugin/wanimate" " ") |
|---|
| 499 | ("wav" "audio/x-wav" "Windows Audio File WAVE format") |
|---|
| 500 | ("wax" "audio/x-ms-wax" "Windows Media Audio Redirector to WMA file.") |
|---|
| 501 | ("wbmp" "image/vnd.wap.wbmp" |
|---|
| 502 | "Wireless Bitmap File Format - Mobil phones") |
|---|
| 503 | ("wi" "image/wavelet" " ") |
|---|
| 504 | ("wid" "application/x-DemoShield" "Width table (Ventura Publisher)") |
|---|
| 505 | ("wis" "application/x-InstallShield" " ") |
|---|
| 506 | ("wks" "application/x-msworks" "MS Works or Lotus 1-2-3 Worksheets") |
|---|
| 507 | ("wlt" "application/x-mswallet" "eWallet file") |
|---|
| 508 | ("wm" "video/x-ms-wm" " ") |
|---|
| 509 | ("wma" "audio/x-ms-wma" "Windows Media Audio. Stored in ASF.") |
|---|
| 510 | ("wmf" "image/x-wmf" "Windows MetaFile vector graphics") |
|---|
| 511 | ("wml" "text/vnd.wap.wml" "Wireless Markup Language File") |
|---|
| 512 | ("wmv" "video/x-ms-wmv" "Windows Media Video (Stored in ASF format)") |
|---|
| 513 | ("wp" "application/wordperfect" "WordPerfect") |
|---|
| 514 | ("wpc" "application/wpc" |
|---|
| 515 | "Text-format converters used 1990-1997 by MS Word and Write") |
|---|
| 516 | ("wpc" "application/pcms_wp" "WordPerfect Character Mapping File ") |
|---|
| 517 | ("wpd," "application/wordperfect5.1" "Document (WordPerfect)") |
|---|
| 518 | ("wps" "application/vnd.ms-works" "MS Works ") |
|---|
| 519 | ("wri" "application/x-mswrite" "Write format (MS Windows)") |
|---|
| 520 | ("wrl" "model/vrml" "Plain Text VRML File ") |
|---|
| 521 | ("wrz" "x-world/x-vrml" " ") |
|---|
| 522 | ("wtx" "audio/x-wtx" " ") |
|---|
| 523 | ("wvx" "video/x-ms-wvx" " ") |
|---|
| 524 | ("xbm" "image/x-xbitmap" "X Bitmaps") |
|---|
| 525 | ("xdr" "video/x-videogram" " ") |
|---|
| 526 | ("xla" "application/vnd.ms-excel" "MS Excel (Add in)") |
|---|
| 527 | ("xlc" "application/vnd.ms-excel" "MS Excel (Chart)") |
|---|
| 528 | ("xlm" "application/vnd.ms-excel" "MS Excel") |
|---|
| 529 | ("xls" "application/vnd.ms-excel" "MS Excel") |
|---|
| 530 | ("xlt" "application/vnd.ms-excel" "MS Excel (template)") |
|---|
| 531 | ("xlw" "application/vnd.ms-excel" "MS Excel (workbook)") |
|---|
| 532 | ("xml" "text/xml" "Extensible Markup Language") |
|---|
| 533 | ("xpm" "image/x-xpixmap" "X Pixmap format") |
|---|
| 534 | ("xsb" "application/x-xsb" "Superbook") |
|---|
| 535 | ("xwd" "image/x-xwindowdump" "X Window Dump (xwd)") |
|---|
| 536 | ("xyz" "chemical/x-pdb" "ASCII RPG Maker Graphic Format") |
|---|
| 537 | ("zip" "application/zip" |
|---|
| 538 | "Compressed file archive created by PKZIP (pkz204g.exe)") |
|---|
| 539 | ("zpa" "application/pcphoto" " "))) |
|---|
| 540 | |
|---|
| 541 | (defvar *mime-types* (make-hash-table |
|---|
| 542 | :test #'equal |
|---|
| 543 | :size (length *mime-type-descriptions*))) |
|---|
| 544 | |
|---|
| 545 | ;;--- Initialize File extension/Mime Type hash table |
|---|
| 546 | (dolist (type-lst *mime-type-descriptions*) |
|---|
| 547 | (setf (gethash (first type-lst) *mime-types*) (second type-lst)))) |
|---|
| 548 | |
|---|
| 549 | (defun lookup-mime-type (file-name |
|---|
| 550 | &optional (default "application/octet-stream")) |
|---|
| 551 | "Extract mime type based on file-extension" |
|---|
| 552 | (let ((pos-ext (position #\. file-name :test #'char= :from-end t))) |
|---|
| 553 | (when (and pos-ext |
|---|
| 554 | (< (1+ pos-ext) (length file-name))) |
|---|
| 555 | (or (gethash (subseq file-name (1+ pos-ext)) *mime-types*) |
|---|
| 556 | default)))) |
|---|