我有一个api,向我发送一个form-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));
}
我工作正常,但所有图像都有错误,无法打开。
答案 0 :(得分:0)
使用此代码保存图像 $ 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;
}