|
@@ -2,6 +2,8 @@
|
|
|
|
|
|
namespace Qii\Library;
|
|
|
|
|
|
+use \Qii\Config\Mine;
|
|
|
+
|
|
|
/**
|
|
|
* Library upload_library
|
|
|
* @author Jinhui Zhu <jinhui.zhu@live.cn>
|
|
@@ -33,217 +35,13 @@ class Upload
|
|
|
7 => '文件写入失败',
|
|
|
8 => '上传被其它扩展中断'
|
|
|
);
|
|
|
- public $mine = array(
|
|
|
- '*' => 'application/octet-stream',
|
|
|
- '323' => 'text/h323',
|
|
|
- '3gp' => 'video/3gp',
|
|
|
- 'acx' => 'application/internet-property-stream',
|
|
|
- 'ai' => 'application/postscript',
|
|
|
- 'aif' => 'audio/x-aiff',
|
|
|
- 'aifc' => 'audio/x-aiff',
|
|
|
- 'aiff' => 'audio/x-aiff',
|
|
|
- 'asf' => 'video/x-ms-asf',
|
|
|
- 'asr' => 'video/x-ms-asf',
|
|
|
- 'asx' => 'video/x-ms-asf',
|
|
|
- 'au' => 'audio/basic',
|
|
|
- 'avi' => 'video/x-msvideo',
|
|
|
- 'axs' => 'application/olescript',
|
|
|
- 'bas' => 'text/plain',
|
|
|
- 'bcpio' => 'application/x-bcpio',
|
|
|
- 'bin' => 'application/octet-stream',
|
|
|
- 'bmp' => 'image/bmp',
|
|
|
- 'c' => 'text/plain',
|
|
|
- 'cat' => 'application/vnd.ms-pkiseccat',
|
|
|
- 'cdf' => 'application/x-cdf',
|
|
|
- 'cer' => 'application/x-x509-ca-cert',
|
|
|
- 'class' => 'application/octet-stream',
|
|
|
- 'clp' => 'application/x-msclip',
|
|
|
- 'cmx' => 'image/x-cmx',
|
|
|
- 'cod' => 'image/cis-cod',
|
|
|
- 'cpio' => 'application/x-cpio',
|
|
|
- 'crd' => 'application/x-mscardfile',
|
|
|
- 'crl' => 'application/pkix-crl',
|
|
|
- 'crt' => 'application/x-x509-ca-cert',
|
|
|
- 'csh' => 'application/x-csh',
|
|
|
- 'css' => 'text/css',
|
|
|
- 'dcr' => 'application/x-director',
|
|
|
- 'der' => 'application/x-x509-ca-cert',
|
|
|
- 'dir' => 'application/x-director',
|
|
|
- 'dll' => 'application/x-msdownload',
|
|
|
- 'dms' => 'application/octet-stream',
|
|
|
- 'doc' => 'application/msword',
|
|
|
- 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
|
- 'dot' => 'application/msword',
|
|
|
- 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
|
|
|
- 'dvi' => 'application/x-dvi',
|
|
|
- 'dxr' => 'application/x-director',
|
|
|
- 'eps' => 'application/postscript',
|
|
|
- 'etx' => 'text/x-setext',
|
|
|
- 'evy' => 'application/envoy',
|
|
|
- 'exe' => 'application/octet-stream',
|
|
|
- 'fif' => 'application/fractals',
|
|
|
- 'flr' => 'x-world/x-vrml',
|
|
|
- 'gif' => 'image/gif',
|
|
|
- 'gtar' => 'application/x-gtar',
|
|
|
- 'gz' => 'application/x-gzip',
|
|
|
- 'h' => 'text/plain',
|
|
|
- 'hdf' => 'application/x-hdf',
|
|
|
- 'hlp' => 'application/winhlp',
|
|
|
- 'hqx' => 'application/mac-binhex40',
|
|
|
- 'hta' => 'application/hta',
|
|
|
- 'htc' => 'text/x-component',
|
|
|
- 'htm' => 'text/html',
|
|
|
- 'html' => 'text/html',
|
|
|
- 'htt' => 'text/webviewhtml',
|
|
|
- 'ico' => 'image/x-icon',
|
|
|
- 'ief' => 'image/ief',
|
|
|
- 'iii' => 'application/x-iphone',
|
|
|
- 'ins' => 'application/x-internet-signup',
|
|
|
- 'isp' => 'application/x-internet-signup',
|
|
|
- 'jfif' => 'image/pipeg',
|
|
|
- 'jpe' => 'image/jpeg',
|
|
|
- 'jpeg' => 'image/jpeg',
|
|
|
- 'jpg' => 'image/jpeg',
|
|
|
- 'jpg_1' => 'image/jpg',
|
|
|
- 'png' => 'image/png',
|
|
|
- 'js' => 'application/x-javascript',
|
|
|
- 'latex' => 'application/x-latex',
|
|
|
- 'lha' => 'application/octet-stream',
|
|
|
- 'lsf' => 'video/x-la-asf',
|
|
|
- 'lsx' => 'video/x-la-asf',
|
|
|
- 'lzh' => 'application/octet-stream',
|
|
|
- 'm13' => 'application/x-msmediaview',
|
|
|
- 'm14' => 'application/x-msmediaview',
|
|
|
- 'm3u' => 'audio/x-mpegurl',
|
|
|
- 'man' => 'application/x-troff-man',
|
|
|
- 'mdb' => 'application/x-msaccess',
|
|
|
- 'me' => 'application/x-troff-me',
|
|
|
- 'mht' => 'message/rfc822',
|
|
|
- 'mhtml' => 'message/rfc822',
|
|
|
- 'mid' => 'audio/mid',
|
|
|
- 'mny' => 'application/x-msmoney',
|
|
|
- 'mov' => 'video/quicktime',
|
|
|
- 'movie' => 'video/x-sgi-movie',
|
|
|
- 'mp2' => 'video/mpeg',
|
|
|
- 'mp3' => 'audio/mpeg',
|
|
|
- 'mp4' => 'video/mp4',
|
|
|
- 'webmp4' => 'video/webmp4',
|
|
|
- 'mpa' => 'video/mpeg',
|
|
|
- 'mpe' => 'video/mpeg',
|
|
|
- 'mpeg' => 'video/mpeg',
|
|
|
- 'mpg' => 'video/mpeg',
|
|
|
- 'mpp' => 'application/vnd.ms-project',
|
|
|
- 'mpv2' => 'video/mpeg',
|
|
|
- 'ms' => 'application/x-troff-ms',
|
|
|
- 'mvb' => 'application/x-msmediaview',
|
|
|
- 'nws' => 'message/rfc822',
|
|
|
- 'oda' => 'application/oda',
|
|
|
- 'p10' => 'application/pkcs10',
|
|
|
- 'p12' => 'application/x-pkcs12',
|
|
|
- 'p7b' => 'application/x-pkcs7-certificates',
|
|
|
- 'p7c' => 'application/x-pkcs7-mime',
|
|
|
- 'p7m' => 'application/x-pkcs7-mime',
|
|
|
- 'p7r' => 'application/x-pkcs7-certreqresp',
|
|
|
- 'p7s' => 'application/x-pkcs7-signature',
|
|
|
- 'pbm' => 'image/x-portable-bitmap',
|
|
|
- 'pdf' => 'application/pdf',
|
|
|
- 'pfx' => 'application/x-pkcs12',
|
|
|
- 'pgm' => 'image/x-portable-graymap',
|
|
|
- 'pko' => 'application/ynd.ms-pkipko',
|
|
|
- 'pma' => 'application/x-perfmon',
|
|
|
- 'pmc' => 'application/x-perfmon',
|
|
|
- 'pml' => 'application/x-perfmon',
|
|
|
- 'pmr' => 'application/x-perfmon',
|
|
|
- 'pmw' => 'application/x-perfmon',
|
|
|
- 'pnm' => 'image/x-portable-anymap',
|
|
|
- 'pot,' => 'application/vnd.ms-powerpoint',
|
|
|
- 'potx,' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
|
|
|
- 'ppm' => 'image/x-portable-pixmap',
|
|
|
- 'pps' => 'application/vnd.ms-powerpoint',
|
|
|
- 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshowt',
|
|
|
- 'ppt' => 'application/vnd.ms-powerpoint',
|
|
|
- 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
|
|
- 'prf' => 'application/pics-rules',
|
|
|
- 'ps' => 'application/postscript',
|
|
|
- 'pub' => 'application/x-mspublisher',
|
|
|
- 'qt' => 'video/quicktime',
|
|
|
- 'ra' => 'audio/x-pn-realaudio',
|
|
|
- 'ram' => 'audio/x-pn-realaudio',
|
|
|
- 'ras' => 'image/x-cmu-raster',
|
|
|
- 'rgb' => 'image/x-rgb',
|
|
|
- 'rmi' => 'audio/mid',
|
|
|
- 'roff' => 'application/x-troff',
|
|
|
- 'rtf' => 'application/rtf',
|
|
|
- 'rtx' => 'text/richtext',
|
|
|
- 'scd' => 'application/x-msschedule',
|
|
|
- 'sct' => 'text/scriptlet',
|
|
|
- 'setpay' => 'application/set-payment-initiation',
|
|
|
- 'setreg' => 'application/set-registration-initiation',
|
|
|
- 'sh' => 'application/x-sh',
|
|
|
- 'shar' => 'application/x-shar',
|
|
|
- 'sit' => 'application/x-stuffit',
|
|
|
- 'snd' => 'audio/basic',
|
|
|
- 'spc' => 'application/x-pkcs7-certificates',
|
|
|
- 'spl' => 'application/futuresplash',
|
|
|
- 'src' => 'application/x-wais-source',
|
|
|
- 'sst' => 'application/vnd.ms-pkicertstore',
|
|
|
- 'stl' => 'application/vnd.ms-pkistl',
|
|
|
- 'stm' => 'text/html',
|
|
|
- 'svg' => 'image/svg+xml',
|
|
|
- 'sv4cpio' => 'application/x-sv4cpio',
|
|
|
- 'sv4crc' => 'application/x-sv4crc',
|
|
|
- 'swf' => 'application/x-shockwave-flash',
|
|
|
- 't' => 'application/x-troff',
|
|
|
- 'tar' => 'application/x-tar',
|
|
|
- 'tcl' => 'application/x-tcl',
|
|
|
- 'tex' => 'application/x-tex',
|
|
|
- 'texi' => 'application/x-texinfo',
|
|
|
- 'texinfo' => 'application/x-texinfo',
|
|
|
- 'tgz' => 'application/x-compressed',
|
|
|
- 'tif' => 'image/tiff',
|
|
|
- 'tiff' => 'image/tiff',
|
|
|
- 'tr' => 'application/x-troff',
|
|
|
- 'trm' => 'application/x-msterminal',
|
|
|
- 'tsv' => 'text/tab-separated-values',
|
|
|
- 'txt' => 'text/plain',
|
|
|
- 'uls' => 'text/iuls',
|
|
|
- 'ustar' => 'application/x-ustar',
|
|
|
- 'vcf' => 'text/x-vcard',
|
|
|
- 'vrml' => 'x-world/x-vrml',
|
|
|
- 'wav' => 'audio/x-wav',
|
|
|
- 'wcm' => 'application/vnd.ms-works',
|
|
|
- 'wdb' => 'application/vnd.ms-works',
|
|
|
- 'wks' => 'application/vnd.ms-works',
|
|
|
- 'wmf' => 'application/x-msmetafile',
|
|
|
- 'wps' => 'application/vnd.ms-works',
|
|
|
- 'wri' => 'application/x-mswrite',
|
|
|
- 'wrl' => 'x-world/x-vrml',
|
|
|
- 'wrz' => 'x-world/x-vrml',
|
|
|
- 'xaf' => 'x-world/x-vrml',
|
|
|
- 'xbm' => 'image/x-xbitmap',
|
|
|
- 'xla' => 'application/vnd.ms-excel',
|
|
|
- 'xlc' => 'application/vnd.ms-excel',
|
|
|
- 'xlm' => 'application/vnd.ms-excel',
|
|
|
- 'xls' => 'application/vnd.ms-excel',
|
|
|
- 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
|
- 'xlt' => 'application/vnd.ms-excel',
|
|
|
- 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
|
|
|
- 'xlw' => 'application/vnd.ms-excel',
|
|
|
- 'xof' => 'x-world/x-vrml',
|
|
|
- 'xpm' => 'image/x-xpixmap',
|
|
|
- 'xwd' => 'image/x-xwindowdump',
|
|
|
- 'z' => 'application/x-compress',
|
|
|
- 'zip' => 'application/zip',
|
|
|
- 'epub' => 'application/epub+zip',
|
|
|
- 'mobi' => 'application/octet-stream',
|
|
|
- 'flac' => 'audio/flac',
|
|
|
- 'ape' => 'audio/ape',
|
|
|
- );
|
|
|
+ public $mine = array();
|
|
|
public $size = 0;
|
|
|
public static $fileHash = array();
|
|
|
public function __construct()
|
|
|
{
|
|
|
-
|
|
|
+ $mine = new Mine();
|
|
|
+ $this->mine = $mine->getAll();
|
|
|
}
|
|
|
|
|
|
|
|
@@ -256,6 +54,18 @@ class Upload
|
|
|
$this->allowed = $array;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 添加mine类型
|
|
|
+ *
|
|
|
+ * @param $mine {"avi": "application/avi"}
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function setMine($mine)
|
|
|
+ {
|
|
|
+ $this->mine = array_merge($this->mine, $mine);
|
|
|
+ return $this->mine;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param int $size default 1024*1024
|
|
|
*/
|
|
@@ -749,11 +559,11 @@ class Upload
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
- * 剪切圖片到指定大小
|
|
|
- * @param String $bigImg 原始圖片
|
|
|
- * @param Int $width 寬
|
|
|
- * @param Int $height高
|
|
|
- * @param String $smallImg 縮放後保存的圖片
|
|
|
+ * 剪切图片到指定大小
|
|
|
+ * @param String $bigImg 原始图片
|
|
|
+ * @param Int $width 宽
|
|
|
+ * @param Int $height 高
|
|
|
+ * @param String $smallImg 缩放后保存的图片
|
|
|
*/
|
|
|
public function imgCutSmall($bigImg, $smallImg, $width, $height)
|
|
|
{
|
|
@@ -762,8 +572,8 @@ class Upload
|
|
|
}
|
|
|
ini_set("memory_limit", "128M");
|
|
|
//大图文件地址,缩略宽,缩略高,小图地址
|
|
|
- $imgage = getimagesize($bigImg);//获取大图信息
|
|
|
- switch ($imgage[2]) {//判断图像类型
|
|
|
+ $image = getimagesize($bigImg);//获取大图信息
|
|
|
+ switch ($image[2]) {//判断图像类型
|
|
|
case 1:
|
|
|
$im = imagecreatefromgif($bigImg);
|
|
|
break;
|