Laravel上传图片库64

时间:2018-07-19 01:26:50

标签: php laravel

我有一个api,向我发送一个form-b​​ase-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));
}

我工作正常,但所有图像都有错误,无法打开。

1 个答案:

答案 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;
}