#### 封装方法
/**
* 上传阿里云
* @param $localpath 本地路径
* @param $uploadpath 上传路径
* @return mixed
*/
function uploadOss($localpath, $uploadpath)
{
import('.OSS.autoload', '', '.php');
$accessKeyId = Config::get('aliyun')['OSS']['ACCESS_KEY_ID'];//去阿里云后台获取秘钥
$accessKeySecret = Config::get('aliyun')['OSS']['ACCESS_KEY_SECRET'];//去阿里云后台获取秘钥
$endpoint = Config::get('aliyun')['OSS']['ENDPOINT'];//你的阿里云OSS地址
$ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint);
$bucket = Config::get('aliyun')['OSS']['BUCKET'];//oss中的文件上传空间
$oss = $ossClient->uploadFile($bucket, $uploadpath, $localpath, $options = NULL);
if ($oss['info']['http_code'] == 200) {
return $oss['info']['url'];
} else {
return $oss['info']['http_code'];
}
}
/**
* 获取文件扩展名
* @param $url
* @return mixed
*/
function getExt($url)
{
$path = parse_url($url);
$str = substr(strrchr($path['path'], '.'), 1);
return $str;
}
/*php生成GUID 全球唯一序列号*/
function getGuid()
{
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$hyphen = chr(45);// "-"
$uuid = substr($charid, 0, 8) . $hyphen
. substr($charid, 8, 4) . $hyphen
. substr($charid, 12, 4) . $hyphen
. substr($charid, 16, 4) . $hyphen
. substr($charid, 20, 12);
return $uuid;
}
逻辑代码
if($_FILES['coverimage']['error'] == 0){
// 服务器路径
$localpath = $_FILES['coverimage']['tmp_name'];
$filename = $_FILES['coverimage']['name'];
$filename = getGuid().'.'.getExt($filename);//一个随机名称
// OSS路径
$uploadpath = "api/works/" . date("Ymd") . "/" . $filename;
$coverimage = uploadOss($localpath, $uploadpath);
}