web-dev-qa-db-ja.com

Laravelファイルストレージ:base64イメージを保存(デコード)する方法?

Laravelのファイルシステム(ファイルストレージ) メソッドを使用してbase64イメージを保存する方法

たとえば、base64イメージを次のようにデコードできます。

base64_decode($encoded_image);

しかし、ファイルを保存するためのLaravelのすべてのメソッドは、Illuminate\Http\FileまたはIlluminate\Http\UploadedFileインスタンスのいずれかを受け入れることができます。

そのため、base64イメージ(またはデコードされたbase64イメージ)をIlluminate\Http\FileまたはIlluminate\Http\UploadedFileに変換する必要があると思いますが、どうやって?

6
PeraMika

putを使用して、エンコードされたコンテンツを保存します。

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

file_put_contentsをラップするだけです。

次にそれを読み戻すには:

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

あなたが推測するように、これはfile_get_contentsをラップしています。

3
DigitalDrifter

このように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));

それがあなたを助けることを願っています

5
rkj