如何使用 Laravel 从数据库存储和检索图像内容

2024-03-08

我必须从数据库中存储和检索图像。 我想存储图像而不是图像路径或图像名称。当我搜索它时,我只找到了存储图像路径或名称的解决方案。那么有人可以告诉我如何从数据库中存储和检索大小为 KB 的图像吗?

这是我的路线。

Route::get('big_image/{id}/image', function ($id)
{
   $user = big_image::find($id);
   return response()->make($user->image, 200, array(
   'Content-Type' => (new finfo(FILEINFO_MIME))->buffer($user->image)
));

});

这是我的控制器

 public  function new_store(Request $request ,$id){
    $event_id = $id;
    $img = new big_image;
    $file =  $request->file('image');
    $contents = $file->openFile()->fread($file->getSize());
    $img = big_image::find($id);
    $img->image = $contents;
    $img->image_name = $request->image_name;
    $img->event_id = $event_id;
    $img->save();
  $images=DB::table('big_image')->where('event_id','=',$event_id)->get();
  return view('image_upload',compact('images','id','response'));
}

我的 display.blade.php 文件

@extends('app')
@section('content')
  <h2 style="text-align: center;margin-top: 10px;">Image Gallery</h2>
  <a href="{{url('pic_upload/'.$id.'')}}" class="col-sm-12"             style="padding-left: 0;"><span> add more pictures</span></a><br>
  <a href="{{url('events')}}"><span>Back to events</span></a><br>
   @foreach($images as $item)
    <div class="col-sm-4">
    {{--<img src="data:image/jpeg;base64,'.base64_encode( $item->image  ).'"/>;--}}
    </div>
@endforeach
@stop

实际上,Laravel 只需要几行代码。假设您有一个用户,该用户的头像存储在数据库中。假设您使用 MySQL,以下是从数据库存储和检索头像的方法:

1.首先你需要有一个avatar栏目中的users可以存储二进制数据的表。根据您想要允许头像图像的大小,列的数据类型可以是以下之一:

BLOB最大 64KB

中型斑点高达 16MB

LONGBLOB高达 4GB

2.要将上传的图像存储在数据库中,您可以执行以下操作:

Route::post('user/{id}', function (Request $request, $id) {
    // Get the file from the request
    $file = $request->file('image');

    // Get the contents of the file
    $contents = $file->openFile()->fread($file->getSize());

    // Store the contents to the database
    $user = App\User::find($id);
    $user->avatar = $contents;
    $user->save();
});

3.要获取并输出头像,您可以执行以下操作:

Route::get('user/{id}/avatar', function ($id) {
    // Find the user
    $user = App\User::find(1);

    // Return the image in the response with the correct MIME type
    return response()->make($user->avatar, 200, array(
        'Content-Type' => (new finfo(FILEINFO_MIME))->buffer($user->avatar)
    ));
});

因此,要访问用户的头像id等于10你可以只使用这个网址:

http://domain.com/user/10/avatar
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Laravel 从数据库存储和检索图像内容 的相关文章

随机推荐

  • 删除 Azure Blob 存储容器内的文件夹

    我有一个名为 图片 并有一些名为 文件夹1 文件夹2 在它里面 所以我的 blob 的文件将这样处理 http optimus blob core windows net pictures Folder1 IMG123 png http o
  • Pytorch 说 CUDA 不可用(在 Ubuntu 上)

    我正在尝试在我拥有的笔记本电脑上运行 Pytorch 这是一个较旧的型号 但它确实有 Nvidia 显卡 我意识到这可能不足以实现真正的机器学习 但我正在尝试这样做 以便我可以了解安装 CUDA 的过程 我已按照上面的步骤操作安装指南 ht
  • 如何在symfony中动态填充下拉列表? (选择所在地区的城市)

    我解释一下我的问题 我必须创建一个表单 其中的下拉列表根据我们在之前的选择中填写 我有两个实体 一个Region可能有多个城市 ManyToOne 关系 我按照这里的文档进行操作如何使用表单事件动态修改表单 动态生成提交的表单 http s
  • 忽略时间戳日期的时间范围查询

    我正在尝试查询我的 Rails 数据库 Postgres 中的购买表 并且我想查询时间范围 例如 我想知道所有日期的下午 2 点到下午 3 点之间进行了多少次购买 有一个created at此表中的列 但我不知道如何在不搜索特定日期的情况下
  • Java,如何弹出一个只有图像的对话框?

    我正在尝试找到一种方法将 JDialog 的所有内容替换为简单的图像 它适用于我正在开发的项目的 关于 页面 我希望当用户单击 关于 部分时 以 JDialog 的样式弹出一个图像 并在失去焦点时消失 例子 http www howtoin
  • 将数据从一个电子表格复制到另一种保留格式且不带公式的数据

    我想要做的是将数据范围从一个电子表格复制到另一个电子表格 同时保留格式 颜色 样式等 并且仅采用不带公式的值 我已经有了这段代码 来自 Tanaike 之前的回答 并进行了一些修改 它保留格式但复制公式 我只需要值 Source var s
  • 如何更改 Python 中一组导入的名称?

    我想从名称更改的模块中导入所有方法 例如 而不是 from module import repetitive methodA as methodA repetitive Class1 as Class1 repetitive instanc
  • 在 Xcode 中为无法识别的选择器创建断点

    是否可以在 Xcode 中设置断点来停止调试器only在无法识别的选择器上 我有其他正在触发的异常 并且我只想在unrecognized selector例外 没有别的 设置符号断点 NSObject doesNotRecognizeSel
  • 添加图片到word文档

    我写了一个下面简单的word插件来将图像插入到word文档中 但是当我执行此代码时 图像不会添加到文档中 var img data image png base64 iVBORw0KGgoAAAANSUhEUgAAAH4AAAAsCAMAA
  • 如何解析维度字符串并将其转换为维度值

    我正在寻找一种动态转换字符串的方法 例如 30dp 转换为类似于像素数量的 int 这意味着StaticClass theMethodImSearchingFor 16px 会回来16 我的应用程序将动态获取这些字符串 我需要一种方法将其存
  • 如何在实体设计器中映射每个类型的表(TPT)继承?

    我在数据库中创建了大量表 以下是有问题的表 Table Name Item ItemID PK Auto Increment Title Table Name Game ItemID PK Console Table Name Film I
  • 持久保存js用户控制状态

    我的 RIA 应用程序有很多 js UI 控件 几乎所有都是 jQuery UI 部分 如 datepicker dialog jqgrid 因此 然后用户在一个页面上使用一些控件 然后转到另一个页面 然后单击返回所有页面组件都具有初始状态
  • Android Maps-API v2:叠加层在哪里?

    我已经编写了一个在 Android 中使用 GoogleMaps Api v1 的应用程序 这个应用程序使用了几个Overlays or 逐项叠加 它自主处理一堆事情 即延迟加载标记 因为我有很多标记 一次添加它们将强制应用程序关闭 我还将
  • 即使正确导入 Java 11 方法,IntelliJ 也无法识别它们

    我已经使用最新版本的 IntelliJ IDEA 社区版 IntelliJ IDEA 2018 3 5 启动了一个新的 Java 11 项目 有一段时间一切似乎都工作得很好 但随后导入模块中的一些方法调用没有任何明显的原因无法被识别 我已经
  • Singleton 无法转储 - cached_resource gem

    Using 缓存资源 https github com Ahsizara cached resourcegem 用于缓存活动资源 用户模型 class User lt ActiveResource Base cached resource
  • 错误:无法下载 silverlight 应用程序。检查网络服务器设置

    在现有的 Web 应用程序中开发 silverlight 页面 用于预览视频文件 当我在本地创建一个 asp net 应用程序并在解决方案上添加 silverlight 应用程序时 它工作得很好 但是 当我尝试包含到现有项目中时 它会抛出此
  • 基于Git的网站部署工作流程

    在我的服务器上 我有两个用户 www data 由 nginx 使用 和git The git用户拥有一个包含我网站代码的存储库 并且www data用户拥有该存储库的克隆 用作 nginx 的 Webroot 我想建立一个工作流程 以便推
  • 可以在不发出两个请求的情况下写入 Firebase 服务器时间戳吗?

    Firebase REST API描述如何写入服务器值 https www firebase com docs rest api section server values 目前仅支持时间戳 位于某个位置 但似乎必须提交单独的请求才能执行此
  • 从 GitHub 获取数据是可能的,从 dribbble 获取数据不起作用

    我使用这段代码从 GitHub API 获取数据 var name var description var html url var username PirateStef var updated at var language var r
  • 如何使用 Laravel 从数据库存储和检索图像内容

    我必须从数据库中存储和检索图像 我想存储图像而不是图像路径或图像名称 当我搜索它时 我只找到了存储图像路径或名称的解决方案 那么有人可以告诉我如何从数据库中存储和检索大小为 KB 的图像吗 这是我的路线 Route get big imag