Hey Matt,

I grabbed a UDF from cflib.org and made it into a function in my utility CFC to assign the correct mime type

Enjoy ;-)

<!---(Function: GetMimeType)------------------------------------------------------
  Date Created:   April 21, 2004
  Author:         Bryan
  Arguments:      filename - name of file with extension (string) required
  Purpose:        Determines mime type of file
  Returns:        (string)
  --->
  <cffunction name="GetMimeType" returnType="string" access="public">
   
    <cfargument name="FileName" type="string" required="Yes">
     
    <cfscript>
     mimeStruct=structNew();
     fileExtension ="";
     mimeType = "";
     //extract file extension from file name
     fileExtension = Reverse(SpanExcluding(Reverse(ARGUMENTS.fileName),"."));
     //build mime type array
     mimeStruct.ai="application/postscript";
     mimeStruct.aif="audio/x-aiff";
     mimeStruct.aifc="audio/x-aiff";
     mimeStruct.aiff="audio/x-aiff";
     mimeStruct.asc="text/plain";
     mimeStruct.au="audio/basic";
     mimeStruct.avi="video/x-msvideo";
     mimeStruct.bcpio="application/x-bcpio";
     mimeStruct.bin="application/octet-stream";
     mimeStruct.c="text/plain";
     mimeStruct.cc="text/plain";
     mimeStruct.ccad="application/clariscad";
     mimeStruct.cdf="application/x-netcdf";
     mimeStruct.class="application/octet-stream";
     mimeStruct.cpio="application/x-cpio";
     mimeStruct.cpt="application/mac-compactpro";
     mimeStruct.csh="application/x-csh";
     mimeStruct.css="text/css";
     mimeStruct.dcr="application/x-director";
     mimeStruct.dir="application/x-director";
     mimeStruct.dms="application/octet-stream";
     mimeStruct.doc="application/msword";
     mimeStruct.drw="application/drafting";
     mimeStruct.dvi="application/x-dvi";
     mimeStruct.dwg="application/acad";
     mimeStruct.dxf="application/dxf";
     mimeStruct.dxr="application/x-director";
     mimeStruct.eps="application/postscript";
     mimeStruct.etx="text/x-setext";
     mimeStruct.exe="application/octet-stream";
     mimeStruct.ez="application/andrew-inset";
     mimeStruct.f="text/plain";
     mimeStruct.f90="text/plain";
     mimeStruct.fli="video/x-fli";
     mimeStruct.gif="image/gif";
     mimeStruct.gtar="application/x-gtar";
     mimeStruct.gz="application/x-gzip";
     mimeStruct.h="text/plain";
     mimeStruct.hdf="application/x-hdf";
     mimeStruct.hh="text/plain";
     mimeStruct.hqx="application/mac-binhex40";
     mimeStruct.htm="text/html";
     mimeStruct.html="text/html";
     mimeStruct.ice="x-conference/x-cooltalk";
     mimeStruct.ief="image/ief";
     mimeStruct.iges="model/iges";
     mimeStruct.igs="model/iges";
     mimeStruct.ips="application/x-ipscript";
     mimeStruct.ipx="application/x-ipix";
     mimeStruct.jpe="image/jpeg";
     mimeStruct.jpeg="image/jpeg";
     mimeStruct.jpg="image/jpeg";
     mimeStruct.js="application/x-_javascript_";
     mimeStruct.kar="audio/midi";
     mimeStruct.latex="application/x-latex";
     mimeStruct.lha="application/octet-stream";
     mimeStruct.lsp="application/x-lisp";
     mimeStruct.lzh="application/octet-stream";
     mimeStruct.m="text/plain";
     mimeStruct.man="application/x-troff-man";
     mimeStruct.me="application/x-troff-me";
     mimeStruct.mesh="model/mesh";
     mimeStruct.mid="audio/midi";
     mimeStruct.midi="audio/midi";
     mimeStruct.mif="application/vndmimeStruct.mif";
     mimeStruct.mime="www/mime";
     mimeStruct.mov="video/quicktime";
     mimeStruct.movie="video/x-sgi-movie";
     mimeStruct.mp2="audio/mpeg";
     mimeStruct.mp3="audio/mpeg";
     mimeStruct.mpe="video/mpeg";
     mimeStruct.mpeg="video/mpeg";
     mimeStruct.mpg="video/mpeg";
     mimeStruct.mpga="audio/mpeg";
     mimeStruct.ms="application/x-troff-ms";
     mimeStruct.msh="model/mesh";
     mimeStruct.nc="application/x-netcdf";
     mimeStruct.oda="application/oda";
     mimeStruct.pbm="image/x-portable-bitmap";
     mimeStruct.pdb="chemical/x-pdb";
     mimeStruct.pdf="application/pdf";
     mimeStruct.pgm="image/x-portable-graymap";
     mimeStruct.pgn="application/x-chess-pgn";
     mimeStruct.png="image/png";
     mimeStruct.pnm="image/x-portable-anymap";
     mimeStruct.pot="application/mspowerpoint";
     mimeStruct.ppm="image/x-portable-pixmap";
     mimeStruct.pps="application/mspowerpoint";
     mimeStruct.ppt="application/mspowerpoint";
     mimeStruct.ppz="application/mspowerpoint";
     mimeStruct.pre="application/x-freelance";
     mimeStruct.prt="application/pro_eng";
     mimeStruct.ps="application/postscript";
     mimeStruct.qt="video/quicktime";
     mimeStruct.ra="audio/x-realaudio";
     mimeStruct.ram="audio/x-pn-realaudio";
     mimeStruct.ras="image/cmu-raster";
     mimeStruct.rgb="image/x-rgb";
     mimeStruct.rm="audio/x-pn-realaudio";
     mimeStruct.roff="application/x-troff";
     mimeStruct.rpm="audio/x-pn-realaudio-plugin";
     mimeStruct.rtf="text/rtf";
     mimeStruct.rtx="text/richtext";
     mimeStruct.scm="application/x-lotusscreencam";
     mimeStruct.set="application/set";
     mimeStruct.sgm="text/sgml";
     mimeStruct.sgml="text/sgml";
     mimeStruct.sh="application/x-sh";
     mimeStruct.shar="application/x-shar";
     mimeStruct.silo="model/mesh";
     mimeStruct.sit="application/x-stuffit";
     mimeStruct.skd="application/x-koan";
     mimeStruct.skm="application/x-koan";
     mimeStruct.skp="application/x-koan";
     mimeStruct.skt="application/x-koan";
     mimeStruct.smi="application/smil";
     mimeStruct.smil="application/smil";
     mimeStruct.snd="audio/basic";
     mimeStruct.sol="application/solids";
     mimeStruct.spl="application/x-futuresplash";
     mimeStruct.src="">      mimeStruct.step="application/STEP";
     mimeStruct.stl="application/SLA";
     mimeStruct.stp="application/STEP";
     mimeStruct.sv4cpio="application/x-sv4cpio";
     mimeStruct.sv4crc="application/x-sv4crc";
     mimeStruct.swf="application/x-shockwave-flash";
     mimeStruct.t="application/x-troff";
     mimeStruct.tar="application/x-tar";
     mimeStruct.tcl="application/x-tcl";
     mimeStruct.tex="application/x-tex";
     mimeStruct.texi="application/x-texinfo";
     mimeStruct.texinfo="application/x-texinfo";
     mimeStruct.tif="image/tiff";
     mimeStruct.tiff="image/tiff";
     mimeStruct.tr="application/x-troff";
     mimeStruct.tsi="audio/TSP-audio";
     mimeStruct.tsp="application/dsptype";
     mimeStruct.tsv="text/tab-separated-values";
     mimeStruct.txt="text/plain";
     mimeStruct.unv="application/i-deas";
     mimeStruct.ustar="application/x-ustar";
     mimeStruct.vcd="application/x-cdlink";
     mimeStruct.vda="application/vda";
     mimeStruct.viv="video/vndmimeStruct.vivo";
     mimeStruct.vivo="video/vndmimeStruct.vivo";
     mimeStruct.vrml="">      mimeStruct.wav="audio/x-wav";
     mimeStruct.wrl="model/vrml";
     mimeStruct.xbm="image/x-xbitmap";
     mimeStruct.xlc="application/vnd.ms-excel";
     mimeStruct.xll="application/vnd.ms-excel";
     mimeStruct.xlm="application/vnd.ms-excel";
     mimeStruct.xls="application/vnd.ms-excel";
     mimeStruct.xlw="application/vnd.ms-excel";
     mimeStruct.xml="text/xml";
     mimeStruct.xpm="image/x-xpixmap";
     mimeStruct.xwd="image/x-xwindowdump";
     mimeStruct.xyz="chemical/x-pdb";
     mimeStruct.zip="application/zip";
    </cfscript>
   
   <cfif(structKeyExists(mimeStruct,fileExtension))>
      <cfset MimeType = mimeStruct[fileExtension]>
   <cfelse>
      <cfset MimeType= "unknown/unknown">
    </cfif>
   
    <cfreturn MimeType>
   
  </cffunction>  

Bryan Stevenson B.Comm.
VP & Director of E-Commerce Development
Electric Edge Systems Group Inc.
t. 250.920.8830
e. [EMAIL PROTECTED]

---------------------------------------------------------
Macromedia Associate Partner
www.macromedia.com
---------------------------------------------------------
Vancouver Island ColdFusion Users Group
Founder & Director
www.cfug-vancouverisland.com
  ----- Original Message -----
  From: Matt Robertson
  To: CF-Talk
  Sent: Wednesday, June 16, 2004 12:36 PM
  Subject: Re: fyi: Win XP SP2 RC available

  Thanks Bryan, but its not much better than the MS doc on this score.

  One thing for sure:  I've been lazy and used application/unknown to force a file download dialog.  I'll have to revise my downloaders to specify a proper mime type and leave it to the user to be able to save what they get in the browser (i.e. a Word doc displaying onscreen).

  -------------------------------------------
  Matt Robertson,     [EMAIL PROTECTED]
  MSB Designs, Inc. http://mysecretbase.com
  -------------------------------------------

  ________________________________________________________________
  Sent via the WebMail system at mysecretbase.com
[Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings] [Donations and Support]

Reply via email to