当前位置: 代码迷 >> 综合 >> ThinkPHP5.0使用阿里云OSS上传文件
  详细解决方案

ThinkPHP5.0使用阿里云OSS上传文件

热度:16   发布时间:2023-12-12 01:29:10.0
#### 封装方法
/*** 上传阿里云* @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);
}