本文实例讲述了php版阿里云OSS图片上传类。分享给大家供大家参考,具体如下:
1.阿里云基本函数
/** * 把本地变量的内容到文件 * 简单上传,上传指定变量的内存值作为object的内容 */public function putObject($imgPath,$object){ $content = file_get_contents($imgPath); // 把当前文件的内容获取到传入文件中 $options = array(); try { $this->ossClient->putObject($this->bucket, $object, $content, $options); } catch (OssException $e) { return $e->getMessage(); } return TRUE;}/** * 上传指定的本地文件内容 */public function uploadFile($imgPath,$object) //$_FILES['img']['tmp_name']{ $filePath = $imgPath; $options = array(); try { $this->ossClient->uploadFile($this->bucket, $object, $filePath, $options); } catch (OssException $e) { return $e->getMessage(); } return TRUE;}// 删除对象public function deleteObject($object) { try { $this->ossClient->deleteObject($this->bucket, $object); } catch (OssException $e) { return $e->getMessage(); } return TRUE;}// 判断对象是否存在public function doesObjectExist($object) { try { $result = $this->ossClient->doesObjectExist($this->bucket, $object); } catch (OssException $e) { return $e->getMessage(); } return $result;}// 批量删除对象public function deleteObjects($objects) { try { $this->ossClient->deleteObjects($this->bucket, $objects); } catch (OssException $e) { return $e->getMessage(); } return TRUE;}/** * 获取object的内容 * * @param OssClient $ossClient OssClient实例 * @param string $bucket 存储空间名称 * @return null */public function getObject($object){ $options = array(); try { $content = $this->ossClient->getObject($this->bucket, $object, $options); } catch (OssException $e) { return $e->getMessage(); } // file_get_contents return $content;}
2.基本配置与辅助函数
public $ossClient,$bucket;private $configinfo = array( 'maxSize' => -1, // 上传文件的最大值 'supportMulti' => true, // 是否支持多文件上传 'allowExts' => array(), // 允许上传的文件后缀 留空不作后缀检查 'allowTypes' => array(), // 允许上传的文件类型 留空不做检查 'thumb' => false, // 使用对上传图片进行缩略图处理 'imageClassPath' => 'ORG.Util.Image', // 图库类包路径 'thumbMaxWidth' => '',// 缩略图最大宽度 'thumbMaxHeight' => '',// 缩略图最大高度 'thumbPrefix' => 'thumb_',// 缩略图前缀 'thumbSuffix' => '', 'thumbPath' => '',// 缩略图保存路径 'thumbFile' => '',// 缩略图文件名 'thumbExt' => '',// 缩略图扩展名 'thumbRemoveOrigin' => false,// 是否移除原图 'zipImages' => false,// 压缩图片文件上传 'autoSub' => false,// 启用子目录保存文件 'subType' => 'hash',// 子目录创建方式 可以使用hash date custom 'subDir' => '', // 子目录名称 subType为custom方式后有效 'dateFormat' => 'Ymd', 'hashLevel' => 1, // hash的目录层次 'savePath' => '',// 上传文件保存路径 'autoCheck' => true, // 是否自动检查附件 'uploadReplace' => false,// 存在同名是否覆盖 'saveRule' => 'uniqid',// 上传文件命名规则 'hashType' => 'md5_file',// 上传文件Hash规则函数名 );// 错误信息private $error = '';// 上传成功的文件信息private $uploadFileInfo ;public function __get($name){ if(isset($this->configinfo[$name])) { return $this->configinfo[$name]; } return null;}public function __set($name,$value){ if(isset($this->configinfo[$name])) { $this->configinfo[$name] = $value; }}public function __isset($name){ return isset($this->configinfo[$name]);}/** * 架构函数 * @access public * @param array $config 上传参数 */public function __construct($config=array()) { if(is_array($config)) { $this->config = array_merge($this->config,$config); } $this->bucket = C('OSS_TEST_BUCKET'); $this->ossClient = new OssClient(C('OSS_ACCESS_ID'), C('OSS_ACCESS_KEY'), C('OSS_ENDPOINT'), false);}
新闻热点
疑难解答