如何将base64转换为Laravel 5.4中的图像?

如何将base64转换为Laravel 5.4中的图像?,laravel,Laravel,我正在Laravel5.4中开发api。我将收到base64格式的图像。如何将base64转换为Laravel中的图像?我找到了解决方案: use Illuminate\Support\Facades\Storage; function createImageFromBase64(Request $request) { $file_data = $request->input('image_file'); $file_name = 'image_' . time() . '.

我正在Laravel5.4中开发api。我将收到base64格式的图像。如何将base64转换为Laravel中的图像?

我找到了解决方案:

use Illuminate\Support\Facades\Storage;

function createImageFromBase64(Request $request)
{
   $file_data = $request->input('image_file');
   $file_name = 'image_' . time() . '.png'; //generating unique file name;

   if ($file_data != "") { // storing image in storage/app/public Folder
       Storage::disk('public')->put($file_name, base64_decode($file_data));
   }
}

此解决方案将处理所有图像类型

 $image = $request->input('image'); // image base64 encoded
 preg_match("/data:image\/(.*?);/",$image,$image_extension); // extract the image extension
 $image = preg_replace('/data:image\/(.*?);base64,/','',$image); // remove the type part
 $image = str_replace(' ', '+', $image);
 $imageName = 'image_' . time() . '.' . $image_extension[1]; //generating unique file name;
 Storage::disk('public')->put($imageName,base64_decode($image));

这个答案是否回答了你的问题?这确实会将文件保存到文件夹中,但它已损坏且无法使用。您可以先尝试使用png图像吗?您是指实际图像吗?如果这就是您的意思,那么它工作得很好,可能是您使用api发送的base64映像是jpg映像。上面的代码将其保存为.png。所以它被破坏了。所以你可以先把png图像转换成base64并使用上面的代码。哈哈,我已经试过了。我使用了与上传前相同的类型。而且它不起作用什么是
$image\u扩展名
?这里没有定义。在执行preg_match函数后,$image_扩展变量将包含image extensionGreat bro,您可以保存我的一天。愿上帝保佑你