前提・実現したいこと
S3に画像を保存して、表示させたいのですが、実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
InvalidArgumentException Found 1 error while validating the input provided for the GetObject operation: [Key] expected string length to be >= 1, but found string length of 0 (View: /home/ubuntu/environment/board.app/resources/views/boards/boards.blade.php)
該当のソースコード
使用環境: Laravel framework 6.18.24
PHP
1@if (count($boards) > 0) 2 <ul class="list-unstyled" style="background:#D9E5FF;"> 3 @foreach ($boards as $board) 4 5 //エラーの部分 6 <img src="{{ Storage::disk('s3')->url($board->image) }}" style="width:70px; height:70px;"> 7 8 9 10 @endforeach 11 </ul> 12 {{-- ページネーションのリンク --}} 13 {{ $boards->links() }} 14@endif 15
画像を選択する箇所です
php
1 2 <form method="POST" action="{{route('boards.store')}}" enctype="multipart/form-data"> 3 @csrf 4 5 6 7 8 <div class="form-image"> 9 <input type="file" name="image" id="img"> 10 </div> 11 12
コントローラー@storeです
php
1public function store(Request $request) 2 { 3 // バリデーション 4 $request->validate([ 5 'content' => 'required|max:255', 6 ]); 7 8 $file = $request->file('image'); 9 10 $file_path= 'images'; 11 12 // S3に接続 13 $path = Storage::disk('s3')->putFile($file_path, $file, 'public'); 14 15 16 // 認証済みユーザ(閲覧者)の投稿として作成(リクエストされた値をもとに作成) 17 $request->user()->boards()->create([ 18 'content' => $request->content, 19 'image' => $path, 20 21 ]); 22 23 // 前のURLへリダイレクトさせる 24 return back(); 25 } 26 27
試したこと
・エラーメッセージについて検索エンジンで調べましたが、出てきませんでした。
・userの方も画像を実装しまして、そちらの方は正しく表示しているので、そちらと照らし合わせていました。
補足情報(FW/ツールのバージョンなど)
使用環境: Laravel framework 6.18.24
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/07 13:37