ThinkPHP5.0上传图片到阿里云OSS

1.首先登录阿里云OSS管理控制台新建一个Bucket存储桶:

(注意下面的EndPoint,即外网访问节点,后面的配置项有用到) 

为了区分不同类型的图片,可以在存储桶下面新建目录进行存放:

2.在tp5的config中做如下一些配置:

//阿里云OSS配置
'alioss'        =>[
    'KeyId'      => 'LTAIRb27m9hb3cIm',  //AccessKey ID
    'KeySecret'  => 'nV2XfBuTEFUUYfT2gHnFMUAgwwCinQ ',  //Access Key Secret
    'EndPoint'   => 'oss-cn-beijing.aliyuncs.com',  //外网访问节点
    'Bucket'     => 'test-lws',  //Bucket名称
],

其中AccessKey ID和Access Key Secret在这个地方可以找到:(注意保密)

3.到阿里云对象存储OSS官网文档,下载PHP的demo,下载后解压重命名文件夹为aliyun-oss,我放到了tp5的extend目录下面:

4. 然后在application/common下面新建一个阿里云OSS上传的工具类:

AliOss.php:(注意引入tp5的Image图像处理类库)

<?php
namespace app\common;
use think\Controller;
use think\Image;

require_once APP_PATH . '/../extend/aliyun-oss/autoload.php';
use OSS\Core\OssException;
use OSS\OssClient;
class AliOss
{
    public static function uploadFile($mulu,$file) {
        $resResult = Image::open($file);
        try {
            $KeyId = config('alioss.KeyId');
            $KeySecret = config('alioss.KeySecret');
            $EndPoint = config('alioss.EndPoint');
            $Bucket = config('alioss.Bucket');
            //实例化
            $ossClient = new OssClient($KeyId, $KeySecret, $EndPoint);
            //sha1加密 生成文件名 连接后缀
            $fileName = $mulu.'/'.sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult->type();
            //执行阿里云上传
            $result = $ossClient->uploadFile($Bucket, $fileName, $file->getInfo()['tmp_name']);
            //图片地址:$result['info']['url']
            $arr = ['code'=>200,'msg'=>'上传成功','data'=>$fileName];
        } catch (OssException $e) {
            $arr = ['code'=>0,'msg'=>$e->getMessage(),'data'=>''];
        }
        return $arr;
    }
}

5.上传图片时调用OSS工具类:

<?php
namespace app\index\controller;
use think\Controller;
use app\common\AliOss;
class Test extends Controller
{
    public function uploadtest(){
      	$file = request()->file('headimg');
       	if($file){
            $res = AliOss::uploadFile('headimg',$file);
            if($res['code']==200){
                //图片路径
                $headimg = $res['data'];
                //业务逻辑省略......
            }
        }
        return json($res);
    }
}

 

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李维山

帮到你就行 不差钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值