首先利用tp5composer机制去下载一个阿里云oss的sdk
composer require aliyuncs/oss-sdk-php
然后,去官方找些配置,在application同级目录的config目录里面新建一个alioss.php的文件,讲配置信息放进去向下面这样
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/8/3
* Time: 11:25
*/
// +----------------------------------------------------------------------
// | 阿里云OSS配置
// +----------------------------------------------------------------------
return [
'KeyId' => '', //Access Key ID
'KeySecret' => '', //Access Key Secret
'Endpoint' => '', //阿里云oss 外网地址endpoint
'Bucket' => '', //Bucket名称
];
然后就可很简单了,新建一个控制器,在你的控制器里面接到图片,最好用tp5自带的接图片的方法
public function uploadFile()
{
$file = request()->file('file'); //获取到上传的文件
print_r($this->uploadFileVideo($file));
}
最好就是阿里云oss去处理图片了
public function ossUploadFile($file)
{
if ('' == $file) return '参数为空';
$resResult = Image::open($file);
// 尝试执行
try {
$config = Config::pull('alioss'); //获取Oss的配置
//实例化对象 将配置传入
$ossClient = new OssClient($config['KeyId'], $config['KeySecret'], $config['Endpoint']);
//这里是有sha1加密 生成文件名 之后连接上后缀
$fileName = 'img/' . sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult->type();
//执行阿里云上传
$result = $ossClient->uploadFile($config['Bucket'], $fileName, $file->getInfo()['tmp_name']);
/**
* 这个只是为了展示
* 可以删除或者保留下做后面的操作
*/
$arr = [
//图片地址
'imgurl' => $result['info']['url'],
//数据库保存名称
'dbimgName' => $fileName
];
} catch (OssException $e) {
return $e->getMessage();
}
//将结果输出
return $arr;
}