tp5使用oss存储图片
1.申请Access Key ID和Access Key Secret,以及创建好你的Bucket
2.通过composer安装oss插件
通过cmd,到项目的目录下,输入下面的指令。
//通过cmd,到项目的目录下,输入下面的指令。
composer require aliyuncs/oss-sdk-php
3.配置好oss信息,在config.php中
// 在config/app.php
'aliyun_oss' => [
'accessKeyId' => '', //您的Access Key ID
'accessKeySecret' => '', //您的Access Key Secret
'endpoint' => '', //阿里云oss 外网地址endpoint
'bucket' => '', //Bucket名称
'url' => '' // 访问的地址
]
下面接下来就是代码实现了
控制器
记得要在类的头部引入
use \OSS\OssClient;
在图片长传之后,处理到阿里云oss中,并将地址保存到数据库
// test/controller/Test
<?php
namespace app\test\controller;
use app\test\model\TestModel;
use OSS\OssClient;
use think\Config;
use think\Controller;
use think\Request;
class Test extends Controller
{
protected $con;
public function __construct(Config $config)
{
$this->con = $config;
}
//跳转展示页
public function index()
{
return $this->fetch('/test');
}
//文件提交OSS 并且入库
public function create(Request $request)
{
//获取上传文件
$file = $request->file('photo_url');
//上传的文件名
$filename = $file->getInfo('name');
//实例化模型
$testModel = new TestModel();
$conf = $this->con->get('aliyun_oss');
//实例化oss
$OssLicen = new OssClient(
$conf['KeyId'],
$conf['KeySecret'],
$conf['Endpoint']
);
//上传到OSS
$result = $OssLicen->uploadFile(
$conf['Bucket'],
$filename,
$file->getPathname()
);
//将数据存入本地数据库
if ($result) {
$data = $request->param();
$data['photo_url'] = $result['info']['url'];
$testModel->save($data);
$this->success('上传成功', 'test/Test/search');
}
//return json(['code' => 0, 'msg' => 'ok', 'data' => $result['info']['url']]);
}
//查询分类
public