//composer 地址
composer require aliyuncs/oss-sdk-php
//成功之后会有如下文件
use OSS\OssClient;
protected $config;
public function _initialize()
{
parent::_initialize(); // TODO: Change the autogenerated stub
$this->config = [
'KeyId' => config('alioss.KeyId'),
'KeySecret' => config('alioss.KeySecret'),
'Endpoint' => config('alioss.Endpoint'),
'Bucket' =>config('alioss.Bucket'),
];
}
public function saveImg()
{
$file = request()->file('imgFile');
$ioss = $this->ossUploadFile($file);
return $this->jsonSuccess('上传成功', ['src'=>$ioss]);
}
/**
* @param $file
* 对上传的文件 进行处理
* 上传到阿里云oss
* 存储到数据库
*/
public function ossUploadFile($file)
{
if (empty($file)){
return $this->jsonError('上传失败');
}
$name = $file->getInfo()['name'];
$ext = explode('.', $name)[1];
$resResult = sha1(date('YmdHis', time()) . uniqid()) . '.' . $ext;
// 尝试执行
try {
//实例化对象 将配置传入
$ossClient = new OssClient($this->config['KeyId'], $this->config['KeySecret'], $this->config['Endpoint']);
//这里是有sha1加密 生成文件名 之后连接上后缀
$fileName = 'img/' . sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult;
//执行阿里云上传
$result = $ossClient->uploadFile($this->config['Bucket'], $fileName, $file->getInfo()['tmp_name']);
/**
* 这个只是为了展示
* 可以删除或者保留下做后面的 *** 作
*/
$arr = [
//图片地址
'imgurl' => $result['info']['url'],
//数据库保存名称
'dbimgName' => $fileName
];
$result = $result['info']['url'];
return $result;
} catch (OssException $e) {
//return $e->getMessage();
echo returnData(-1,$e->getMessage());
}
//将结果输出
// return $arr;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)