Laravel 文件存储:如何存储(解码)base64 图像?

Laravel File Storage: How to store (decoded) base64 image?

如何使用Laravel's filesytem (File Storage)方法存储base64图像?

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

base64_decode($encoded_image);

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

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

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

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

它所做的只是包装 file_put_contents

然后读出来:

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

您猜对了,它正在包装 file_get_contents

您可以像这样使用 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));

希望对您有所帮助