PHP
base64格式图片上传至阿里云OSS
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。
0条评论