oss 上传 api 中,一个是上传 file ,有个是上传 content 。如何处理各种文件以及数据格式呢。常见的一种操作是上传图片。这里就弄弄看。
操作一波
如果上传的图片是 base64 ,先要转换。我们这里定义一个函数。
function base64ToImage($file)
{
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file, $result)) {
$image = base64_decode(str_replace($result[1], '', $file));
return $image;
}
return null;
}
我们还知道怎么拼接完成的 url。
# 这样就可以获取公网 url,当然你也可以获取内网 url
$url = App\Services\Oss::getPublicObjectURL($ossKey);
在这里,我们是先将文件传到服务器,再从服务器将文件传到 oss 上。这时,就用内网上传即可。流量要钱的,这样蛮好的。为什么不直接传 oss 上呢。直接传服务端逻辑不方便操作,直接传权限控制不好处理。反正就这种操作吧。
上边的还没说完,转换后,需要内网上传。
$file = base64ToImage($request->file);
$ossKey = ''upload/images/meets/1.jpg;
if($file) {
$uploaded = Oss::privateUploadContent($ossKey, $file);
}
想要删也可以的
Oss::privateDeleteObject($ossKey);