diff --git a/CHANGELOG b/CHANGELOG
index e01e85031..7de133978 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -13,6 +13,7 @@ Version 1.0 to be released
- Added CHtml::activeFileField (Qiang)
- Added CUploadedFile (Qiang)
- Added CFileValidator (Qiang)
+- Added CFileHelper::getMimeType and CFileHelper::getMimeTypeByExtension (Qiang)
Version 1.0rc November 10, 2008
-------------------------------
diff --git a/build/commands/ApiCommand.php b/build/commands/ApiCommand.php
index fc83b0e19..6ead9642f 100644
--- a/build/commands/ApiCommand.php
+++ b/build/commands/ApiCommand.php
@@ -66,7 +66,7 @@ EOD;
'fileTypes'=>array('php'),
'exclude'=>array(
'.svn',
- 'yiilite.php',
+ '/yiilite.php',
'/cli',
'/i18n/data',
'/messages',
@@ -74,6 +74,7 @@ EOD;
'/views',
'/web/js',
'/web/widgets/views',
+ '/utils/mimeTypes.php',
),
);
$this->pageTitle='Yii Framework Class Reference';
diff --git a/build/commands/AutoloadCommand.php b/build/commands/AutoloadCommand.php
index ccdc100a0..5a98e9412 100644
--- a/build/commands/AutoloadCommand.php
+++ b/build/commands/AutoloadCommand.php
@@ -49,9 +49,11 @@ EOD;
'/views',
'/cli',
'/yii.php',
+ '/yiilite.php',
'/web/js',
'/vendors',
'/i18n/data',
+ '/utils/mimeTypes.php',
),
);
$files=CFileHelper::findFiles(YII_PATH,$options);
diff --git a/framework/utils/CFileHelper.php b/framework/utils/CFileHelper.php
index da6353d9d..fb32a0ca5 100644
--- a/framework/utils/CFileHelper.php
+++ b/framework/utils/CFileHelper.php
@@ -180,4 +180,51 @@ class CFileHelper
else
return false;
}
+
+ /**
+ * Determines the MIME type of the specified file.
+ * This method will attempt the following approaches in order:
+ *
+ * - finfo
+ * - mime_content_type
+ * - {@link getMimeTypeByExtension}
+ *
+ * @param string the file name.
+ * @return string the MIME type. Null is returned if the MIME type cannot be determined.
+ */
+ public static function getMimeType($file)
+ {
+ if(function_exists('finfo_open'))
+ {
+ if($info=finfo_open(FILEINFO_MIME))
+ return finfo_file($info,$file);
+ else
+ return null;
+ }
+
+ if(function_exists('mime_content_type'))
+ return mime_content_type($file);
+
+ return self::getMimeTypeByExtension($file);
+ }
+
+ /**
+ * Determines the MIME type based on the extension name of the specified file.
+ * This method will use a local map between extension name and MIME type.
+ * @param string the file name.
+ * @return string the MIME type. Null is returned if the MIME type cannot be determined.
+ */
+ public static function getMimeTypeByExtension($file)
+ {
+ static $extensions;
+ if($extensions===null)
+ $extensions=require(Yii::getPathOfAlias('system.utils.mimeTypes').'.php');
+ if(($pos=strrpos($file,'.'))!==false)
+ {
+ $ext=strtolower(substr($file,$pos+1));
+ if(isset($extensions[$ext]))
+ return $extensions[$ext];
+ }
+ return null;
+ }
}
diff --git a/framework/utils/mimeTypes.php b/framework/utils/mimeTypes.php
new file mode 100644
index 000000000..a4830c8c0
--- /dev/null
+++ b/framework/utils/mimeTypes.php
@@ -0,0 +1,437 @@
+
+ * @link http://www.yiiframework.com/
+ * @copyright Copyright © 2008 Yii Software LLC
+ * @license http://www.yiiframework.com/license/
+ * @version $Id$
+ */
+
+return array(
+ 'ez' => 'application/andrew-inset',
+ 'base64' => 'application/appledouble',
+ 'base64' => 'application/applefile',
+ 'dp' => 'application/commonground',
+ 'pqi' => 'application/cprplayer',
+ 'tsp' => 'application/dsptype',
+ 'xls' => 'application/excel',
+ 'pfr' => 'application/font-tdpfr',
+ 'spl' => 'application/futuresplash',
+ 'stk' => 'application/hstu',
+ 'stk' => 'application/hyperstudio',
+ 'js' => 'application/javascript',
+ 'hqx' => 'application/mac-binhex40',
+ 'cpt' => 'application/mac-compactpro',
+ 'mbd' => 'application/mbed',
+ 'mfp' => 'application/mirage',
+ 'doc' => 'application/msword',
+ 'orq' => 'application/ocsp-request',
+ 'ors' => 'application/ocsp-response',
+ 'bin' => 'application/octet-stream',
+ 'exe' => 'application/octet-stream',
+ 'oda' => 'application/oda',
+ 'ogg' => 'application/ogg',
+ 'pdf' => 'application/pdf',
+ '7bit' => 'application/pgp-encrypted',
+ '7bit' => 'application/pgp-keys',
+ 'sig' => 'application/pgp-signature',
+ 'p10' => 'application/pkcs10',
+ 'p7m' => 'application/pkcs7-mime',
+ 'p7s' => 'application/pkcs7-signature',
+ 'cer' => 'application/pkix-cert',
+ 'crl' => 'application/pkix-crl',
+ 'pkipath' => 'application/pkix-pkipath',
+ 'pki' => 'application/pkixcmp',
+ 'ai' => 'application/postscript',
+ 'eps' => 'application/postscript',
+ 'ps' => 'application/postscript',
+ 'shw' => 'application/presentations',
+ 'cw' => 'application/prs.cww',
+ 'rnd' => 'application/prs.nprend',
+ 'qrt' => 'application/quest',
+ 'rtf' => 'application/rtf',
+ 'soc' => 'application/sgml-open-catalog',
+ 'siv' => 'application/sieve',
+ 'smi' => 'application/smil',
+ 'tbk' => 'application/toolbook',
+ 'plb' => 'application/vnd.3gpp.pic-bw-large',
+ 'psb' => 'application/vnd.3gpp.pic-bw-small',
+ 'pvb' => 'application/vnd.3gpp.pic-bw-var',
+ 'sms' => 'application/vnd.3gpp.sms',
+ 'atc' => 'application/vnd.acucorp',
+ 'xfdf' => 'application/vnd.adobe.xfdf',
+ 'ami' => 'application/vnd.amiga.amu',
+ 'mpm' => 'application/vnd.blueice.multipass',
+ 'cdy' => 'application/vnd.cinderella',
+ 'cmc' => 'application/vnd.cosmocaller',
+ 'wbs' => 'application/vnd.criticaltools.wbs+xml',
+ 'curl' => 'application/vnd.curl',
+ 'rdz' => 'application/vnd.data-vision.rdz',
+ 'dfac' => 'application/vnd.dreamfactory',
+ 'fsc' => 'application/vnd.fsc.weblauch',
+ 'txd' => 'application/vnd.genomatix.tuxedo',
+ 'hbci' => 'application/vnd.hbci',
+ 'les' => 'application/vnd.hhe.lesson-player',
+ 'plt' => 'application/vnd.hp-hpgl',
+ 'emm' => 'application/vnd.ibm.electronic-media',
+ 'irm' => 'application/vnd.ibm.rights-management',
+ 'sc' => 'application/vnd.ibm.secure-container',
+ 'rcprofile' => 'application/vnd.ipunplugged.rcprofile',
+ 'irp' => 'application/vnd.irepository.package+xml',
+ 'jisp' => 'application/vnd.jisp',
+ 'karbon' => 'application/vnd.kde.karbon',
+ 'chrt' => 'application/vnd.kde.kchart',
+ 'kfo' => 'application/vnd.kde.kformula',
+ 'flw' => 'application/vnd.kde.kivio',
+ 'kon' => 'application/vnd.kde.kontour',
+ 'kpr' => 'application/vnd.kde.kpresenter',
+ 'ksp' => 'application/vnd.kde.kspread',
+ 'kwd' => 'application/vnd.kde.kword',
+ 'htke' => 'application/vnd.kenameapp',
+ 'kia' => 'application/vnd.kidspiration',
+ 'kne' => 'application/vnd.kinar',
+ 'lbd' => 'application/vnd.llamagraphics.life-balance.desktop',
+ 'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml',
+ 'wks' => 'application/vnd.lotus-1-2-3',
+ 'mcd' => 'application/vnd.mcd',
+ 'mfm' => 'application/vnd.mfmp',
+ 'flo' => 'application/vnd.micrografx.flo',
+ 'igx' => 'application/vnd.micrografx.igx',
+ 'mif' => 'application/vnd.mif',
+ 'mpn' => 'application/vnd.mophun.application',
+ 'mpc' => 'application/vnd.mophun.certificate',
+ 'xul' => 'application/vnd.mozilla.xul+xml',
+ 'cil' => 'application/vnd.ms-artgalry',
+ 'asf' => 'application/vnd.ms-asf',
+ 'xls' => 'application/vnd.ms-excel',
+ 'lrm' => 'application/vnd.ms-lrm',
+ 'ppt' => 'application/vnd.ms-powerpoint',
+ 'mpp' => 'application/vnd.ms-project',
+ 'base64' => 'application/vnd.ms-tnef',
+ 'base64' => 'application/vnd.ms-works',
+ 'wpl' => 'application/vnd.ms-wpl',
+ 'mseq' => 'application/vnd.mseq',
+ 'ent' => 'application/vnd.nervana',
+ 'rpst' => 'application/vnd.nokia.radio-preset',
+ 'rpss' => 'application/vnd.nokia.radio-presets',
+ 'odt' => 'application/vnd.oasis.opendocument.text',
+ 'ott' => 'application/vnd.oasis.opendocument.text-template',
+ 'oth' => 'application/vnd.oasis.opendocument.text-web',
+ 'odm' => 'application/vnd.oasis.opendocument.text-master',
+ 'odg' => 'application/vnd.oasis.opendocument.graphics',
+ 'otg' => 'application/vnd.oasis.opendocument.graphics-template',
+ 'odp' => 'application/vnd.oasis.opendocument.presentation',
+ 'otp' => 'application/vnd.oasis.opendocument.presentation-template',
+ 'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
+ 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
+ 'odc' => 'application/vnd.oasis.opendocument.chart',
+ 'odf' => 'application/vnd.oasis.opendocument.formula',
+ 'odb' => 'application/vnd.oasis.opendocument.database',
+ 'odi' => 'application/vnd.oasis.opendocument.image',
+ 'prc' => 'application/vnd.palm',
+ 'efif' => 'application/vnd.picsel',
+ 'pti' => 'application/vnd.pvi.ptid1',
+ 'qxd' => 'application/vnd.quark.quarkxpress',
+ 'sdoc' => 'application/vnd.sealed.doc',
+ 'seml' => 'application/vnd.sealed.eml',
+ 'smht' => 'application/vnd.sealed.mht',
+ 'sppt' => 'application/vnd.sealed.ppt',
+ 'sxls' => 'application/vnd.sealed.xls',
+ 'stml' => 'application/vnd.sealedmedia.softseal.html',
+ 'spdf' => 'application/vnd.sealedmedia.softseal.pdf',
+ 'see' => 'application/vnd.seemail',
+ 'mmf' => 'application/vnd.smaf',
+ 'sxc' => 'application/vnd.sun.xml.calc',
+ 'stc' => 'application/vnd.sun.xml.calc.template',
+ 'sxd' => 'application/vnd.sun.xml.draw',
+ 'std' => 'application/vnd.sun.xml.draw.template',
+ 'sxi' => 'application/vnd.sun.xml.impress',
+ 'sti' => 'application/vnd.sun.xml.impress.template',
+ 'sxm' => 'application/vnd.sun.xml.math',
+ 'sxw' => 'application/vnd.sun.xml.writer',
+ 'sxg' => 'application/vnd.sun.xml.writer.global',
+ 'stw' => 'application/vnd.sun.xml.writer.template',
+ 'sus' => 'application/vnd.sus-calendar',
+ 'vsc' => 'application/vnd.vidsoft.vidconference',
+ 'vsd' => 'application/vnd.visio',
+ 'vis' => 'application/vnd.visionary',
+ 'sic' => 'application/vnd.wap.sic',
+ 'slc' => 'application/vnd.wap.slc',
+ 'wbxml' => 'application/vnd.wap.wbxml',
+ 'wmlc' => 'application/vnd.wap.wmlc',
+ 'wmlsc' => 'application/vnd.wap.wmlscriptc',
+ 'wtb' => 'application/vnd.webturbo',
+ 'wpd' => 'application/vnd.wordperfect',
+ 'wqd' => 'application/vnd.wqd',
+ 'wv' => 'application/vnd.wv.csp+wbxml',
+ '8bit' => 'application/vnd.wv.csp+xml',
+ '8bit' => 'application/vnd.wv.ssp+xml',
+ 'hvd' => 'application/vnd.yamaha.hv-dic',
+ 'hvs' => 'application/vnd.yamaha.hv-script',
+ 'hvp' => 'application/vnd.yamaha.hv-voice',
+ 'saf' => 'application/vnd.yamaha.smaf-audio',
+ 'spf' => 'application/vnd.yamaha.smaf-phrase',
+ 'vmd' => 'application/vocaltec-media-desc',
+ 'vmf' => 'application/vocaltec-media-file',
+ 'vtk' => 'application/vocaltec-talker',
+ 'wif' => 'application/watcherinfo+xml',
+ 'wp5' => 'application/wordperfect5.1',
+ 'wk' => 'application/x-123',
+ '7ls' => 'application/x-7th_level_event',
+ 'aab' => 'application/x-authorware-bin',
+ 'aam' => 'application/x-authorware-map',
+ 'aas' => 'application/x-authorware-seg',
+ 'bcpio' => 'application/x-bcpio',
+ 'bleep' => 'application/x-bleeper',
+ 'bz2' => 'application/x-bzip2',
+ 'vcd' => 'application/x-cdlink',
+ 'chat' => 'application/x-chat',
+ 'pgn' => 'application/x-chess-pgn',
+ 'z' => 'application/x-compress',
+ 'cpio' => 'application/x-cpio',
+ 'pqf' => 'application/x-cprplayer',
+ 'csh' => 'application/x-csh',
+ 'csm' => 'application/x-cu-seeme',
+ 'co' => 'application/x-cult3d-object',
+ 'deb' => 'application/x-debian-package',
+ 'dcr' => 'application/x-director',
+ 'dir' => 'application/x-director',
+ 'dxr' => 'application/x-director',
+ 'dvi' => 'application/x-dvi',
+ 'evy' => 'application/x-envoy',
+ 'spl' => 'application/x-futuresplash',
+ 'gtar' => 'application/x-gtar',
+ 'gz' => 'application/x-gzip',
+ 'hdf' => 'application/x-hdf',
+ 'hep' => 'application/x-hep',
+ 'rhtml' => 'application/x-html+ruby',
+ 'mv' => 'application/x-httpd-miva',
+ 'phtml' => 'application/x-httpd-php',
+ 'ica' => 'application/x-ica',
+ 'imagemap' => 'application/x-imagemap',
+ 'ipx' => 'application/x-ipix',
+ 'ips' => 'application/x-ipscript',
+ 'jar' => 'application/x-java-archive',
+ 'jnlp' => 'application/x-java-jnlp-file',
+ 'ser' => 'application/x-java-serialized-object',
+ 'class' => 'application/x-java-vm',
+ 'js' => 'application/x-javascript',
+ 'skp' => 'application/x-koan',
+ 'latex' => 'application/x-latex',
+ 'cpt' => 'application/x-mac-compactpro',
+ 'frm' => 'application/x-maker',
+ 'mcd' => 'application/x-mathcad',
+ 'mid' => 'application/x-midi',
+ 'mif' => 'application/x-mif',
+ 'mda' => 'application/x-msaccess',
+ 'cmd' => 'application/x-msdos-program',
+ 'com' => 'application/x-msdos-program',
+ 'base64' => 'application/x-msdownload',
+ 'xls' => 'application/x-msexcel',
+ 'doc' => 'application/x-msword',
+ 'nc' => 'application/x-netcdf',
+ 'pac' => 'application/x-ns-proxy-autoconfig',
+ 'pm5' => 'application/x-pagemaker',
+ 'pl' => 'application/x-perl',
+ 'rp' => 'application/x-pn-realmedia',
+ 'py' => 'application/x-python',
+ 'qtl' => 'application/x-quicktimeplayer',
+ 'rar' => 'application/x-rar-compressed',
+ 'rb' => 'application/x-ruby',
+ 'sh' => 'application/x-sh',
+ 'shar' => 'application/x-shar',
+ 'swf' => 'application/x-shockwave-flash',
+ 'spr' => 'application/x-sprite',
+ 'sav' => 'application/x-spss',
+ 'spt' => 'application/x-spt',
+ 'sit' => 'application/x-stuffit',
+ 'sv4cpio' => 'application/x-sv4cpio',
+ 'sv4crc' => 'application/x-sv4crc',
+ 'tar' => 'application/x-tar',
+ 'tcl' => 'application/x-tcl',
+ 'tex' => 'application/x-tex',
+ 'texinfo' => 'application/x-texinfo',
+ 't' => 'application/x-troff',
+ 'man' => 'application/x-troff-man',
+ 'me' => 'application/x-troff-me',
+ 'ms' => 'application/x-troff-ms',
+ 'vqf' => 'application/x-twinvq',
+ 'vqe' => 'application/x-twinvq-plugin',
+ 'ustar' => 'application/x-ustar',
+ 'bck' => 'application/x-vmsbackup',
+ 'src' => 'application/x-wais-source',
+ 'wz' => 'application/x-wingz',
+ 'base64' => 'application/x-word',
+ 'wp6' => 'application/x-wordperfect6.1',
+ 'crt' => 'application/x-x509-ca-cert',
+ 'zip' => 'application/x-zip-compressed',
+ 'xhtml' => 'application/xhtml+xml',
+ 'zip' => 'application/zip',
+ '3gpp' => 'audio/3gpp',
+ 'amr' => 'audio/amr',
+ 'awb' => 'audio/amr-wb',
+ 'au' => 'audio/basic',
+ 'evc' => 'audio/evrc',
+ 'l16' => 'audio/l16',
+ 'mid' => 'audio/midi',
+ 'mp3' => 'audio/mpeg',
+ 'mpga' => 'audio/mpeg',
+ 'sid' => 'audio/prs.sid',
+ 'qcp' => 'audio/qcelp',
+ 'smv' => 'audio/smv',
+ 'koz' => 'audio/vnd.audiokoz',
+ 'eol' => 'audio/vnd.digital-winds',
+ 'plj' => 'audio/vnd.everad.plj',
+ 'lvp' => 'audio/vnd.lucent.voice',
+ 'mxmf' => 'audio/vnd.nokia.mobile-xmf',
+ 'vbk' => 'audio/vnd.nortel.vbk',
+ 'ecelp4800' => 'audio/vnd.nuera.ecelp4800',
+ 'ecelp7470' => 'audio/vnd.nuera.ecelp7470',
+ 'ecelp9600' => 'audio/vnd.nuera.ecelp9600',
+ 'smp3' => 'audio/vnd.sealedmedia.softseal.mpeg',
+ 'vox' => 'audio/voxware',
+ 'aif' => 'audio/x-aiff',
+ 'mid' => 'audio/x-mid',
+ 'mid' => 'audio/x-midi',
+ 'mp2' => 'audio/x-mpeg',
+ 'mpu' => 'audio/x-mpegurl',
+ 'ra' => 'audio/x-pn-realaudio',
+ 'rm' => 'audio/x-pn-realaudio',
+ 'rpm' => 'audio/x-pn-realaudio-plugin',
+ 'ra' => 'audio/x-realaudio',
+ 'wav' => 'audio/x-wav',
+ 'csm' => 'chemical/x-csml',
+ 'emb' => 'chemical/x-embl-dl-nucleotide',
+ 'cube' => 'chemical/x-gaussian-cube',
+ 'gau' => 'chemical/x-gaussian-input',
+ 'jdx' => 'chemical/x-jcamp-dx',
+ 'mol' => 'chemical/x-mdl-molfile',
+ 'rxn' => 'chemical/x-mdl-rxnfile',
+ 'tgf' => 'chemical/x-mdl-tgf',
+ 'mop' => 'chemical/x-mopac-input',
+ 'pdb' => 'chemical/x-pdb',
+ 'scr' => 'chemical/x-rasmol',
+ 'xyz' => 'chemical/x-xyz',
+ 'dwf' => 'drawing/dwf',
+ 'dwf' => 'drawing/x-dwf',
+ 'ivr' => 'i-world/i-vrml',
+ 'bmp' => 'image/bmp',
+ 'wif' => 'image/cewavelet',
+ 'cod' => 'image/cis-cod',
+ 'fif' => 'image/fif',
+ 'gif' => 'image/gif',
+ 'ief' => 'image/ief',
+ 'jp2' => 'image/jp2',
+ 'jpeg' => 'image/jpeg',
+ 'jpg' => 'image/jpeg',
+ 'jpm' => 'image/jpm',
+ 'jpf' => 'image/jpx',
+ 'pic' => 'image/pict',
+ 'jpg' => 'image/pjpeg',
+ 'png' => 'image/png',
+ 'tga' => 'image/targa',
+ 'tif' => 'image/tiff',
+ 'tiff' => 'image/tiff',
+ 'svf' => 'image/vn-svf',
+ 'dgn' => 'image/vnd.dgn',
+ 'djvu' => 'image/vnd.djvu',
+ 'dwg' => 'image/vnd.dwg',
+ 'pgb' => 'image/vnd.glocalgraphics.pgb',
+ 'ico' => 'image/vnd.microsoft.icon',
+ 'mdi' => 'image/vnd.ms-modi',
+ 'spng' => 'image/vnd.sealed.png',
+ 'sgif' => 'image/vnd.sealedmedia.softseal.gif',
+ 'sjpg' => 'image/vnd.sealedmedia.softseal.jpg',
+ 'wbmp' => 'image/vnd.wap.wbmp',
+ 'bmp' => 'image/x-bmp',
+ 'ras' => 'image/x-cmu-raster',
+ 'fh4' => 'image/x-freehand',
+ 'png' => 'image/x-png',
+ 'pnm' => 'image/x-portable-anymap',
+ 'pbm' => 'image/x-portable-bitmap',
+ 'pgm' => 'image/x-portable-graymap',
+ 'ppm' => 'image/x-portable-pixmap',
+ 'rgb' => 'image/x-rgb',
+ 'xbm' => 'image/x-xbitmap',
+ 'xpm' => 'image/x-xpixmap',
+ 'xwd' => 'image/x-xwindowdump',
+ '8bit' => 'message/external-body',
+ '8bit' => 'message/news',
+ '8bit' => 'message/partial',
+ '8bit' => 'message/rfc822',
+ 'igs' => 'model/iges',
+ 'msh' => 'model/mesh',
+ 'x_b' => 'model/vnd.parasolid.transmit.binary',
+ 'x_t' => 'model/vnd.parasolid.transmit.text',
+ 'vrm' => 'model/vrml',
+ 'wrl' => 'model/vrml',
+ '8bit' => 'multipart/alternative',
+ '8bit' => 'multipart/appledouble',
+ '8bit' => 'multipart/digest',
+ '8bit' => 'multipart/mixed',
+ '8bit' => 'multipart/parallel',
+ 'csv' => 'text/comma-separated-values',
+ 'css' => 'text/css',
+ 'htm' => 'text/html',
+ 'html' => 'text/html',
+ 'txt' => 'text/plain',
+ 'rst' => 'text/prs.fallenstein.rst',
+ 'rtx' => 'text/richtext',
+ 'rtf' => 'text/rtf',
+ 'sgm' => 'text/sgml',
+ 'sgml' => 'text/sgml',
+ 'tsv' => 'text/tab-separated-values',
+ 'ccc' => 'text/vnd.net2phone.commcenter.command',
+ 'jad' => 'text/vnd.sun.j2me.app-descriptor',
+ 'si' => 'text/vnd.wap.si',
+ 'sl' => 'text/vnd.wap.sl',
+ 'wml' => 'text/vnd.wap.wml',
+ 'wmls' => 'text/vnd.wap.wmlscript',
+ 'hdml' => 'text/x-hdml',
+ 'etx' => 'text/x-setext',
+ 'sgml' => 'text/x-sgml',
+ 'talk' => 'text/x-speech',
+ 'vcs' => 'text/x-vcalendar',
+ 'vcf' => 'text/x-vcard',
+ 'xml' => 'text/xml',
+ 'uvr' => 'ulead/vrml',
+ '3gp' => 'video/3gpp',
+ 'dl' => 'video/dl',
+ 'gl' => 'video/gl',
+ 'mj2' => 'video/mj2',
+ 'mp2' => 'video/mpeg',
+ 'mpeg' => 'video/mpeg',
+ 'mpg' => 'video/mpeg',
+ 'mov' => 'video/quicktime',
+ 'qt' => 'video/quicktime',
+ 'vdo' => 'video/vdo',
+ 'viv' => 'video/vivo',
+ 'fvt' => 'video/vnd.fvt',
+ 'mxu' => 'video/vnd.mpegurl',
+ 'nim' => 'video/vnd.nokia.interleaved-multimedia',
+ 'mp4' => 'video/vnd.objectvideo',
+ 's11' => 'video/vnd.sealed.mpeg1',
+ 'smpg' => 'video/vnd.sealed.mpeg4',
+ 'sswf' => 'video/vnd.sealed.swf',
+ 'smov' => 'video/vnd.sealedmedia.softseal.mov',
+ 'viv' => 'video/vnd.vivo',
+ 'vivo' => 'video/vnd.vivo',
+ 'fli' => 'video/x-fli',
+ 'asf' => 'video/x-ms-asf',
+ 'wmv' => 'video/x-ms-wmv',
+ 'avi' => 'video/x-msvideo',
+ 'movie' => 'video/x-sgi-movie',
+ 'pdb' => 'x-chemical/x-pdb',
+ 'xyz' => 'x-chemical/x-xyz',
+ 'ice' => 'x-conference/x-cooltalk',
+ 'dwf' => 'x-drawing/dwf',
+ 'd' => 'x-world/x-d96',
+ 'svr' => 'x-world/x-svr',
+ 'vrw' => 'x-world/x-vream',
+ 'wrl' => 'x-world/x-vrml',
+);
diff --git a/framework/web/CUploadedFile.php b/framework/web/CUploadedFile.php
index ea1741545..84a4d0a60 100644
--- a/framework/web/CUploadedFile.php
+++ b/framework/web/CUploadedFile.php
@@ -134,7 +134,8 @@ class CUploadedFile extends CComponent
/**
* @return string the MIME-type of the uploaded file (such as "image/gif").
- * Since this mime type is not checked on the server side, do not take its value for granted.
+ * Since this MIME type is not checked on the server side, do not take this value for granted.
+ * Instead, use {@link CFileHelper::getMimeType} to determine the exact MIME type.
*/
public function getType()
{