1.base64url传到后端,后端接收转图片存本地临时
/** * 图片base64Url转文件 */
public static function base64ToFile($baseUrl,$path){
$imageName = date("YmdHis",time())."_".rand(1111,9999).'.png';
if (strstr($baseUrl,",")){
$image = explode(',',$baseUrl);
$image = $image[1];
}
if (!is_dir($path)){ //判断目录是否存在 不存在就创建
mkdir($path,0777,true);
}
$imageSrc= $path."/". $imageName; //图片名字
$r = file_put_contents($imageSrc, base64_decode($image));//返回的是字节数
if (!$r){
return false;
}else{
return ['imageName'=>$imageName,'imageSrc'=>$imageSrc];
}
}
2.上传oss
/**
* 上传图片 *
* @param Request $request
* @return void
*/
public function uploadImg(Request $request){
$request = $request->all();
// 图片存放路径
$path = "tmp";
// 获取图片在临时文件中的地址
$pic = Util::base64ToFile($request['base64url'],$path);
if(!$pic){
return Util::ajaxMsg('-1', '图片上传失败');
}
$osssrc = Session::get('admin_user.fid').'/'.$pic['imageName']; // oss保存位置
$res = OSS::upload($osssrc, $pic['imageSrc']); // OSS 图片上传
$ossurl = config('alioss.ossServer').'/'.$osssrc; // oss图片外网链接
return $res ;
}
网友评论