php - Laravel 上传图片库 64
问题描述
我有一个 api 发送给我一个 form-data base-64 图像字符串我找到了这个代码
public function image(Request $request){
$request = json_decode($request->getContent());
$image = $request->image; // your base64 encoded
$image = str_replace('data:image/png;base64,', '', $image);
$image = str_replace(' ', '+', $image);
$imageName = str_random(10).'.'.'png';
\File::put(base_path(). '\public\users\\' . $imageName, base64_decode($image));
}
我工作正常,但所有图像都有错误并且无法打开。
解决方案
使用此代码保存图像 $imageData 将是您请求的图像 $request->image
$imgdata = base64_decode($imageData);
$f = finfo_open();
$mime_type = "." . explode("/", finfo_buffer($f, $imgdata, FILEINFO_MIME_TYPE))[1];
$img = $imageData;
$image_parts = explode(";base64,", $img);
$image_type_aux = explode("image/", $image_parts[0]);
$image_type = $image_type_aux[1];
$image_base64 = base64_decode($image_parts[1]);
$file = public_path() . '/uploads/' . $folder_name . $img_perfix . $id . "." . $image_type;
file_put_contents($file, $image_base64);
if (!empty($file)) {
$profile = $table_name::find($id);
$profile->image = $img_perfix . $id . "." . $image_type;
}
推荐阅读
- iis - 为什么添加重写规则后会出现 405 错误?
- php - 动态 array_multisort() 不调用已弃用的函数 create_function()
- django - Heroku django 管理面板看起来不正常
- functional-programming - Use of " _ " in functions Ocaml
- java - 你能一步一步地向我解释这个java代码吗?
- python - BeautifulSoup 'find()' 返回 NoneType 值
- ag-grid - 过滤器下的按钮未出现在 Ag-Grid 中
- asp.net - 用户不断使用应用程序时的 asp.net 会话持续时间
- flutter - 我们如何在不添加上下文的情况下推送到各个页面?
- unity3d - Unity UI 子级