上传图片时调用 null 成员函数 storeAs()

我正在尝试将图像上传到我的数据库,一切似乎都是故意的,但是当我上传图像时出现以下错误:


对 null 调用成员函数 storeAs()


这看起来很正常,但我仍然收到该错误。


控制器


function Create(Request $request){

        $book = Book::create([

            'name' => $request->book_name,

            'writer_name' => $request->writer_name,

            'isbn' => $request->book_isbn,

            'image' => $request->file('book_image')->storeAs('public/images', $id.'.jpg'),

        ]);

        $book->save();

        return redirect('/');

    

    }

超文本标记语言


<input class="form-control" type="file" name="book_image" id="book_image" placeholder="Image">

路线


Route::post('create','EditController@Create');


慕尼黑8549860
浏览 99回答 1
1回答

芜湖不芜

当您将图像上传到 Laravel 时,您需要包含正确的enctype:<form method="POST" action="{{ url('/update') }}" enctype="multipart/form-data">&nbsp; @csrf&nbsp; <input class="form-control" type="file" name="book_image" id="book_image" placeholder="Image">&nbsp; ...</form>如果你不包括enctype="multipart/form-data",$request->file('book_image')将永远是null。作为旁注,您可能应该为此添加某种形式的验证,以强制上传图像,并且它是有效的图像格式:https://laravel.com/docs/7.x/validation#rule-requiredhttps://laravel.com/docs/7.x/validation#rule-image要显示图像,您应该能够使用以下命令:@foreach($books as $book)&nbsp; <img src="{{ asset($book->image) }}"/>@endforeachpublic编辑:从方法中删除该单词saveAs():'image' => $request->file('book_image')->storeAs('images', uniqid().'.jpg')这样,它应该与助手一起工作asset()。
打开App,查看更多内容
随时随地看视频慕课网APP