前提
S3に保存した画像を指定のフォルダにダウンロードしたいです。
DBに画像パスのみを保存しており、そのパスを使用し、S3内から画像データを取得しています。
指定のローカルフォルダ内にダウンロードさせたいのですが躓いています。
どのように記述すれば、指定フォルダにダウンロードさせられますか。
S3の保存先 Amazon S3 > バケット > sample > img/
ローカルの指定フォルダ temp/img/画像データ
発生している問題・エラーメッセージ
エラーメッセージは特に出ておらず。 $fileの内容をlogにinfoすると文字化けしています。
該当のソースコード
php
1public function downloadFile(Request $request){ 2 $img_path = $request['data']['img']; // DBから保存している画像パスを受け取り 3 $file = Storage::disk('s3')->get('img/' . $img_path); // S3からファイルを取得 4 $file_path = storage_path('temp/img/画像データ'); //保存するファイル指定 5 $file_name = '画像データ'; // ファイル名を取得 6 7 // ダウンロードする際のファイル名を、Content-Dispositionで指定 8 $headers = [ 9 'Content-Type' => 'application/pdf', 10 'Content-Disposition' => 'attachment; filename="' . $file_name . '"' 11 ]; 12 return response()->make($file, 200, $headers); 13} 14 15
試したこと
ファイルを指定せずダウンロードも試したがうまく動きませんでした。
$file = Storage::disk('s3')->get('img/' . $img_path);を$file = Storage::disk('s3')->url('img/' . $img_path);
に、変更すると
https://sample.s3.us-east-2.amazonaws.com/img/cuLDFaJaph80buRrr7TTSpaJgBOAeY3ttgYOwhLG.jpg
は取得される
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2023/01/06 06:23