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\File
或 Illuminate\Http\UploadedFile
实例。
所以我想我必须将 base64 图像(或解码的 base64 图像)转换为 Illuminate\Http\File
或 Illuminate\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));
希望对您有所帮助
如何使用Laravel's filesytem (File Storage)方法存储base64图像?
例如,我可以这样解码base64图像:
base64_decode($encoded_image);
但是 Laravel 的所有存储文件的方法都可以接受 Illuminate\Http\File
或 Illuminate\Http\UploadedFile
实例。
所以我想我必须将 base64 图像(或解码的 base64 图像)转换为 Illuminate\Http\File
或 Illuminate\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));
希望对您有所帮助