12

如何使用Laravel 的文件系统(文件存储)方法存储 base64 图像?

例如,我可以像这样解码 base64 图像:

base64_decode($encoded_image);

但是 Laravel 存储文件的所有方法都可以接受 aIlluminate\Http\FileIlluminate\Http\UploadedFile实例。

所以我想我必须将 base64 图像(或解码的 base64 图像)转换为Illuminate\Http\Fileor Illuminate\Http\UploadedFile,但是如何?

4

2 回答 2

15

只需用于put存储编码的内容:

Storage::put('file.jpg', $encoded_image);

它所做的只是包装file_put_contents.

然后将其读回:

$data = base64_decode(Storage::get('file.jpg'));

你猜对了,它是 wrapping file_get_contents

于 2018-07-12T04:05:15.827 回答
13

您可以像这样使用 laravel 文件存储上传您的 base64 图像

    $base64_image = $request->input('base64_image'); // your base64 encoded     
    @list($type, $file_data) = explode(';', $base64_image);
    @list(, $file_data) = explode(',', $file_data); 
    $imageName = str_random(10).'.'.'png';   
    Storage::disk('local')->put($imageName, base64_decode($file_data));

希望对你有帮助

于 2018-07-12T04:18:30.787 回答