PHP base64图片上传阿里云

1.引用阿里云的上传sdk

require ROOT_PATH . 'addons/AliyunOss/SDK/autoload.php';
use OSS\OssClient;

2.base64转图片并上传 

/**
     * base64上传图片
     * @author caicai
     * @time 2023/4/21 11:47
     */
    public function baseUpload($data){
        $imgBase64 = $data['sixfour'];
        #转化base64编码图片
        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $imgBase64, $res)) {
            //获取图片类型
            $type = $res[2];
            //图片名字
            $fileName = md5(time()) . '.' . $type;
            // 临时文件
            $tmpfname = tempnam("/image/", "FOO");
            //保存图片
            $handle = fopen($tmpfname, "w");
            //阿里云oss上传的文件目录
            $dst = 'zxnew/';
            if (fwrite($handle, base64_decode(str_replace($res[1], '', $imgBase64))))
            {
                #上传图片至阿里云OSS
                $url = $this->uploadImage($dst . $fileName, $tmpfname);
                #关闭缓存
                fclose($handle);
                #删除本地该图片
                unlink($tmpfname);
                #返回图片链接
                $returnUrl = 'https://wurenzhishou.oss-cn-beijing.aliyuncs.com/' . $dst . $fileName;
                return ApiReturn::r(1, $returnUrl, "ok");
            }else {
                return ApiReturn::r(0, '', "fail");
            }
        } else {
            return ApiReturn::r(0, '', "fail");
        }
    }
function uploadImage($dst, $getFile)
    {
        $configs =  addons_config('AliyunOss');

        #配置OSS基本配置
        $config = array(
            'KeyId' => $configs['ak'],
            'KeySecret' => $configs['sk'],
            'Endpoint' => $configs['endpoint'],
            'Bucket' => $configs['bucket'],
        );
        $ossClient = new OssClient($config['KeyId'], $config['KeySecret'],
            $config['Endpoint']);
        #执行阿里云上传
        $result = $ossClient->uploadFile($config['Bucket'], $dst, $getFile);
        #返回
        return $result;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值