Php 将上传的图像存储到数据库laravel中

Php 将上传的图像存储到数据库laravel中,php,laravel,image-uploading,Php,Laravel,Image Uploading,我上传图像到数据库时遇到问题,每次我尝试上传图像时,发送到数据库的数据都是空的,但我的本地磁盘可以存储图像,我不知道该怎么办。我想我可能在控制器部分做错了什么 控制器: public function store1(Request $request){ $this->validate($request, [ 'file' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', ]);

我上传图像到数据库时遇到问题,每次我尝试上传图像时,发送到数据库的数据都是空的,但我的本地磁盘可以存储图像,我不知道该怎么办。我想我可能在控制器部分做错了什么

控制器:

public function store1(Request $request){

   $this->validate($request, [
        'file' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);


   if ($request->hasFile('file')) {
        $image = $request->file('file');
        $name = $image->getClientOriginalName();
        $size = $image->getClientSize();
        $destinationPath = public_path('/images');
        $image->move($destinationPath, $name);

        $userImage = new UserImage;
        $userImage->name = $name;
        $userImage->size = $size;
        //dd($userImage);
        $userImage->save;
}
我要上载到的表:

Schema::create('user_images', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('size');
        $table->integer('user_id');
        $table->timestamps();
});

在发布的代码中,您忘记设置用户id的数据。正如我在您的模式中看到的,它不可为null,因此它应该有一个数据

另外,您可以尝试将
()
放入您的保存中,如下所示:

 $userImage->save();

在你拿到国旗之前。另外,请将
二进制
字段放在用户表之外,因为在大多数情况下,它会减慢查询速度。。简而言之,blob应该在另一个表中。@BagusTesa tks用于答复,我刚才忘记更新我的问题,那是我使用的旧问题,我刚刚编辑了问题,请看一看,tks用于帮助嗯,将我的图像上载到数据库中,确实令人困惑。。之前您有
$table->binary('userImage')。现在,你试过@Miggy的建议了吗?您的代码丢失了代码>(代码)> @ SRY,因为混淆了,因为我看到很多帖子说把图像存储到DB上不是一件好事,所以我把它改为只存储名称和SIZWELL,它并不是那么糟糕,只是,您需要考虑通过将BLB扔进另一个表来减轻表的负担。所以对主表的查询对于mysql来说还是很容易处理的。哦,我的上帝,谢谢你,米吉,我忘记放括号了。这是一个如此粗心的错误。非常感谢您的帮助,我在这里呆了很长一段时间,一直在想,我很高兴帮助@blastmeHi Miggy,sry问另一个问题,但您知道如何打印保存在公用文件夹中的图像吗?我看到有人在使用它,但我不太确定如何使用它,“image)}}”>-->在视图中显示“你可以用这个@blastme。它会起作用的。如果没有,你可以创建另一个有错误的问题,你可以标记我,当然我会创建另一个问题,呃,但是我如何标记你?对不起,我几周前才开始使用,现在还不确定所有的功能