CURL 文件上传兼容 php5.4-5.5

	public function getCurlValue($filename, $contentType) {
		// PHP 5.5 introduced a CurlFile object that deprecates the old
		// @filename syntax
		// See: https://wiki.php.net/rfc/curl-file-upload
		if (function_exists ( 'curl_file_create' )) {
			$filename = preg_replace ( '/^@/', '', $filename );
			return new CurlFile ( $filename, $contentType, basename($filename) );
			// curl_file_create ( $filename, $contentType, basename($filename));
		}
		// Use the old style if using an older version of PHP
		if (! preg_match ( '/^@/', $filename ))
			$value = "@" . $filename;
		else
			$value = $filename;
		return $value;
	}

 

curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data ); // POST提交的数据包

 

if ($data) {
			foreach ( $data as $key => $file ) {
				$data [$key] = $this->getCurlValue ( $file, $this->get_mime ( $file ) );
			}
		}

 

	function get_mime($file) {
		$ext = pathinfo ( $file, PATHINFO_EXTENSION );
		if ($ext == '')
			return '';
		$mime_types = include 'mime.class.php';
		return isset ( $mime_types [$ext] ) ? $mime_types [$ext] : '';
	}

 

<?php
/**
 * MIME types.
 *
 * This file contains most commonly used MIME types
 * according to file extension names.
 *
 * @author Qiang Xue <qiang.xue@gmail.com>
 * @link http://www.yiiframework.com/
 * @copyright Copyright &copy; 2008-2011 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 * @version $Id: mimeTypes.php 3181 2011-04-15 01:26:52Z alexander.makarow $
 */

return array(
	'ai'=>'application/postscript',
	'aif'=>'audio/x-aiff',
	'aifc'=>'audio/x-aiff',
	'aiff'=>'audio/x-aiff',
	'asc'=>'text/plain',
	'au'=>'audio/basic',
	'avi'=>'video/x-msvideo',
	'bcpio'=>'application/x-bcpio',
	'bin'=>'application/octet-stream',
	'bmp'=>'image/bmp',
	'c'=>'text/plain',
	'cc'=>'text/plain',
	'ccad'=>'application/clariscad',
	'cdf'=>'application/x-netcdf',
	'class'=>'application/octet-stream',
	'cpio'=>'application/x-cpio',
	'cpt'=>'application/mac-compactpro',
	'csh'=>'application/x-csh',
	'css'=>'text/css',
	'dcr'=>'application/x-director',
	'dir'=>'application/x-director',
	'dms'=>'application/octet-stream',
	'doc'=>'application/msword',
	'docx'=>'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
	'xlsx'=>'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
	'pptx'=>'application/vnd.openxmlformats-officedocument.presentationml.presentation',
	'dotx'=>'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
	'drw'=>'application/drafting',
	'dvi'=>'application/x-dvi',
	'dwg'=>'application/acad',
	'dxf'=>'application/dxf',
	'dxr'=>'application/x-director',
	'eps'=>'application/postscript',
	'etx'=>'text/x-setext',
	'exe'=>'application/octet-stream',
	'ez'=>'application/andrew-inset',
	'f'=>'text/plain',
	'f90'=>'text/plain',
	'fli'=>'video/x-fli',
	'flv'=>'video/x-flv',
	'gif'=>'image/gif',
	'gtar'=>'application/x-gtar',
	'gz'=>'application/x-gzip',
	'h'=>'text/plain',
	'hdf'=>'application/x-hdf',
	'hh'=>'text/plain',
	'hqx'=>'application/mac-binhex40',
	'htm'=>'text/html',
	'html'=>'text/html',
	'ice'=>'x-conference/x-cooltalk',
	'ief'=>'image/ief',
	'iges'=>'model/iges',
	'igs'=>'model/iges',
	'ips'=>'application/x-ipscript',
	'ipx'=>'application/x-ipix',
	'jpe'=>'image/jpeg',
	'jpeg'=>'image/jpeg',
	'jpg'=>'image/jpeg',
	'js'=>'application/x-javascript',
	'kar'=>'audio/midi',
	'latex'=>'application/x-latex',
	'lha'=>'application/octet-stream',
	'lsp'=>'application/x-lisp',
	'lzh'=>'application/octet-stream',
	'm'=>'text/plain',
	'man'=>'application/x-troff-man',
	'me'=>'application/x-troff-me',
	'mesh'=>'model/mesh',
	'mid'=>'audio/midi',
	'midi'=>'audio/midi',
	'mif'=>'application/vnd.mif',
	'mime'=>'www/mime',
	'mov'=>'video/quicktime',
	'movie'=>'video/x-sgi-movie',
	'mp2'=>'audio/mpeg',
	'mp3'=>'audio/mpeg',
	'mpe'=>'video/mpeg',
	'mpeg'=>'video/mpeg',
	'mpg'=>'video/mpeg',
	'mpga'=>'audio/mpeg',
	'ms'=>'application/x-troff-ms',
	'msh'=>'model/mesh',
	'nc'=>'application/x-netcdf',
	'oda'=>'application/oda',
	'pbm'=>'image/x-portable-bitmap',
	'pdb'=>'chemical/x-pdb',
	'pdf'=>'application/pdf',
	'pgm'=>'image/x-portable-graymap',
	'pgn'=>'application/x-chess-pgn',
	'png'=>'image/png',
	'pnm'=>'image/x-portable-anymap',
	'pot'=>'application/mspowerpoint',
	'ppm'=>'image/x-portable-pixmap',
	'pps'=>'application/mspowerpoint',
	'ppt'=>'application/mspowerpoint',
	'ppz'=>'application/mspowerpoint',
	'pre'=>'application/x-freelance',
	'prt'=>'application/pro_eng',
	'ps'=>'application/postscript',
	'qt'=>'video/quicktime',
	'ra'=>'audio/x-realaudio',
	'ram'=>'audio/x-pn-realaudio',
	'ras'=>'image/cmu-raster',
	'rgb'=>'image/x-rgb',
	'rm'=>'audio/x-pn-realaudio',
	'roff'=>'application/x-troff',
	'rpm'=>'audio/x-pn-realaudio-plugin',
	'rtf'=>'text/rtf',
	'rtx'=>'text/richtext',
	'scm'=>'application/x-lotusscreencam',
	'set'=>'application/set',
	'sgm'=>'text/sgml',
	'sgml'=>'text/sgml',
	'sh'=>'application/x-sh',
	'shar'=>'application/x-shar',
	'silo'=>'model/mesh',
	'sit'=>'application/x-stuffit',
	'skd'=>'application/x-koan',
	'skm'=>'application/x-koan',
	'skp'=>'application/x-koan',
	'skt'=>'application/x-koan',
	'smi'=>'application/smil',
	'smil'=>'application/smil',
	'snd'=>'audio/basic',
	'sol'=>'application/solids',
	'spl'=>'application/x-futuresplash',
	'src'=>'application/x-wais-source',
	'step'=>'application/STEP',
	'stl'=>'application/SLA',
	'stp'=>'application/STEP',
	'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',
	'tif'=>'image/tiff',
	'tiff'=>'image/tiff',
	'tr'=>'application/x-troff',
	'tsi'=>'audio/TSP-audio',
	'tsp'=>'application/dsptype',
	'tsv'=>'text/tab-separated-values',
	'txt'=>'text/plain',
	'unv'=>'application/i-deas',
	'ustar'=>'application/x-ustar',
	'vcd'=>'application/x-cdlink',
	'vda'=>'application/vda',
	'viv'=>'video/vnd.vivo',
	'vivo'=>'video/vnd.vivo',
	'vrml'=>'model/vrml',
	'wav'=>'audio/x-wav',
	'wrl'=>'model/vrml',
	'xbm'=>'image/x-xbitmap',
	'xlc'=>'application/vnd.ms-excel',
	'xll'=>'application/vnd.ms-excel',
	'xlm'=>'application/vnd.ms-excel',
	'xls'=>'application/vnd.ms-excel',
	'xlw'=>'application/vnd.ms-excel',
	'xml'=>'application/xml',
	'xpm'=>'image/x-xpixmap',
	'xwd'=>'image/x-xwindowdump',
	'xyz'=>'chemical/x-pdb',
	'zip'=>'application/zip',
);

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

发表评论

电子邮件地址不会被公开。 必填项已用*标注