base64格式图片上传至阿里云OSS

       博主最近在开发一个项目,要用到base64图片上传至阿里云OSS,所以博主将这个过程分享给大家。

       我们首先先把base64图片保存在本地,然后再上传至阿里云OSS,代码如下:

//$imgBase64 图片base64格式
function imageDoAliyunOss($imgBase64)
{
   #引用阿里云上传文件
   require 'AliYunUpload.php';
   #转化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
          $aliyun = new AliYunUpload();
          $url = $aliyun->uploadImage($dst . $fileName, $tmpfname);
          #关闭缓存
          fclose($handle);
          #删除本地该图片
          unlink($tmpfname);
          #返回图片链接
          $returnUrl = '文件域名' . $dst . $fileName;
          return $returnUrl;
       }else {
          return '';
       }
    } else {
        return '';
    }

}

       下面我们再来封装阿里云OSS上传的方法,代码如下:

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

       这样我们便成功完成了base64格式图片上传至阿里云OSS。

       更多文章请关注微信公众号

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

佛布朗斯基

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值