**
tp5 oss上传
**
1进入项目后,安装扩展
composer require aliyuncs/oss-sdk-php
2.上传文件
public function upload(){
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
// 移动到框架应用根目录/public/uploads/ 目录下
$return =['Code'=>'','Msg'=>''];
if($file){
$info = $file->move(ROOT_PATH .'public' . DS . 'Uploads' . DS . 'Images');
if($info){
// 成功上传后 获取上传信息
// 输出 jpg
// echo $info->getExtension();
// 输出 20190904/42a79759f284b767dfcb2a0197904287.jpg
//上传到oss,'xxx/xxx'是文件路径
$oss_img_url = $this->aliyun($info->getSaveName(),'xxx/xxx');
$return['Code'] = '100000';
$return['Msg'] = 'Success';
$return['Data'] = $oss_img_url;
return json($return);
// // 输出 42a79759f284b767dfcb2a0197904287.jpg
// echo $info->getFilename();
}else{
$return['Code'] = '100002';
$return['Msg'] = '上传失败';
return json($return);
}
}
}
3.oss上传代码
function aliyun($savePath,$category='',$isunlink=false,$bucket="xxx"){ ///bucket名
$accessKeyId = 'xxxxxxxx';//去阿里云后台获取秘钥
$accessKeySecret = 'xxxxxxxx';//去阿里云后台获取秘钥
$endpoint = 'oss-cn-beijing.aliyuncs.com';//你的阿里云OSS地址(不要前面的Bucket)
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
// 判断bucketname是否存在,不存在就去创建
if( !$ossClient->doesBucketExist($bucket)){
$ossClient->createBucket($bucket);
}
$category=empty($category)?$bucket:$category;
$savePath = str_replace("\\","/",$savePath);
$object = $category.'/'.$savePath;//想要保存文件的名称
$file = './Uploads/Images/'.$savePath;//文件路径,必须是本地的。
try{
$ossClient->uploadFile($bucket,$object,$file);
if ($isunlink==true){
unlink($file);
}
}catch (OssException $e){
$e->getErrorMessage();
}
$oss='https://xxx.oss-cn-beijing.aliyuncs.com';//这里是你oos的全url
return $oss."/".$object;
}
4.accessKeyId和accessKeySecret
4.跨域
如果是字体。需要解决跨域
在“权限设置”-》“跨域设置”