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

时间:2018-07-12 03:04:19

标签: php laravel base64 laravel-filesystem laravel-storage

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

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

base64_decode($encoded_image);

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

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

2 个答案:

答案 0 :(得分:1)

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

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

它所做的只是包装file_put_contents

然后将其读出:

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

您猜这是包裹file_get_contents

答案 1 :(得分:1)

您可以使用laravel File Storage这样上传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));

希望对您有帮助