前言:
因业务需求,前台生成多张合成图后上传服务器,接口会等待时间过长,造成不好的体验。我们需要前台将多张base64的图片传到后台,由后台队列生成,然后在传到七牛服务器。可以采取3种方案。1:将base64直接存到数据库;2.将base64转成图片file在传到七牛;3将base64直接传到七牛,我们采取方式3。废话不多说,上代码
Controller层:
public function base64ToUpload(Request $request)
{
$base64 = $request->get('base64_img', '');
$ret = UploadService::base64ToUpload($base64);
return !empty($ret) ? response()->success($ret) : response()->error('上传失败');
}
Service层:
public static function base64ToUpload($data)
{
// 构建鉴权对象(配置文件中获取密钥)
$auth = new Auth(config("qiniu.key"), config("qiniu.key"));
$bucket = config("qiniu.bucket");
$policy = [
"mimeLimit" => "image
function base64_urlSafeDecode($str)
{
$find = array('-', '_');
$replace = array('+', '/');
return base64_decode(str_replace($find, $replace, $str));
}
function crc32_data($data)
{
$hash = hash('crc32b', $data);
$array = unpack('N', pack('H*', $hash));
return sprintf('%u', $array[1]);
}
end:齐活



