【问题标题】:storing uploaded image into database laravel将上传的图像存储到数据库 laravel
【发布时间】:2017-10-25 09:29:42
【问题描述】:

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

控制器:

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();
});

【问题讨论】:

  • 在获得标志之前.. read this previous answer.另外,请将binary 字段远离用户表,因为它会在大多数情况下减慢查询速度。简而言之,blob 应该在另一个表中。
  • @BagusTesa tks 回复,我刚才忘了更新我的问题,这是我使用的旧问题,我刚刚编辑了问题,请看一下,tks 帮助
  • hmm,将我的图像上传到数据库中,确实令人困惑......之前你有$table->binary('userImage');。现在,你尝试过@Miggy 的建议了吗?你的代码丢失了()
  • @BagusTesa 很困惑,因为我看到很多帖子说将图像存储到数据库中不是一件好事,所以我将其更改为仅存储名称和大小
  • 好吧,它并没有那么糟糕,只是,您需要考虑通过将 blob 扔到另一个表中来减轻表负担。所以对主表的查询对于mysql来说仍然很容易处理。

标签: php laravel image-uploading


【解决方案1】:

在您发布的代码中,您忘记为user_id 设置数据。正如我在您的架构中看到的那样,它不能为空,因此它应该有一个数据。

另外,您可以尝试将() 放入您的存档中吗:

 $userImage->save();

【讨论】:

  • 天哪,谢谢你,Miggy,我忘了放支架保存。这是一个如此粗心的错误。非常感谢您的帮助,我在这里停留了很长一段时间,一直在思考我错在哪里
  • 很高兴帮助@blastme
  • 嗨 Miggy,不好意思再问一个问题,但您知道如何打印保存到公用文件夹中的图像吗?我看到有人在使用它,但我不太确定如何使用它,“image) }}"> --> 显示在视图中"
  • 你可以使用@blastme。它会起作用的。如果没有,您可以创建另一个带有错误的问题,您可以提前标记我
  • 当然我会创建另一个问题,呃,但是我如何标记你?抱歉,我几周前才开始使用 SO,但仍然不确定所有功能
猜你喜欢
  • 2021-08-28
  • 2017-10-19
  • 2020-12-17
  • 2016-10-12
  • 1970-01-01
  • 2018-11-22
  • 2018-06-04
  • 1970-01-01
  • 2022-01-03
相关资源
最近更新 更多