保存图片到mongodb

2024-04-19

我正在尝试使用龙卷风、石油和 mongodb 来做到这一点。

avat = self.request.files['avatar'][0]["body"]
nomfich = self.request.files['avatar'][0]["filename"]

try:
    image = Image.open(StringIO.StringIO(buf=avat))
    size = image.size
    type = image.format

    avatar = r"/profile-images/{0}/{1}".format(pseudo, nomfich)

except IOError:
    self.redirect("/erreur-im")

和数据库代码:

user={
    "pseudo": pseudo, 
    "password":password, 
    "email":email, 
    "tel":tel, 
    "commune":commune,    
    "statut":statut, 
    "nom":nom, 
    "prenom":prenom, 
    "daten":daten, 
    "sexe":sexe, 
    "avatar":avatar
}

self.db.essog.insert(user)  

它成功了,“头像”被保存,但没有图像,它只保存一个名字!

我的问题是:

  • 要了解数据库如何处理图片,我必须制作image.save(path, format),但是路径是正常系统路径(windows或linux)的路径吗?
  • 配置文件很简单,我将图片上传限制为500ko,mongodb中的文档为16mb,因此该文档将处理整个配置文件,但是即使对于包含图片的小文档,我也必须使用gridFS吗? 关键问题是图片保存路径,我被卡住了,这是我第一次处理数据库,所以很抱歉这个问题。

您不一定需要 GridFS 在 MongoDB 中存储文件,但它肯定会带来更好的体验,因为它处理二进制数据的拆分和保存,同时使元数据也可用。然后您可以将 ID 存储在您的User文件到头像图片。

除此之外,您还可以直接在文档中存储二进制数据,尽管在代码中您没有保存数据。你只需用以下命令打开它PIL.Image,但随后什么也不做。

假设您正在使用pymongo对于您的驱动程序,我认为您可以做的就是将二进制数据包装在Binary容器 http://api.mongodb.org/python/1.6/api/pymongo/binary.html,然后存储它。这未经我测试,但我认为它应该有效:

from pymongo.binary import Binary

binary_avatar = Binary(avat)

user={
    ...
    "avatar":avatar,
    "avatar_file": binary_avatar
    ...
}

话虽这么说...只是让自己更轻松并使用GridFS http://www.mongodb.org/display/DOCS/GridFS。这就是它的目的。

如果您要使用 GridFS,它可能如下所示:

from gridfs import GridFS

avat_ctype = self.request.files['avatar'][0]["content_type"]

fs = GridFS(db)
avatar_id = fs.put(avat, content_type=avat_ctype, filename=nomfich)

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

保存图片到mongodb 的相关文章

  • 将 Spring Data 随机(嵌入式)Mongo 端口与 NoSQL JUnit @Rule 结合使用

    我目前正在尝试编写一个使用 Spring Data Mongo 存储库的集成测试类 我使用由提供的嵌入式 Mongo 实例de flapdoodle embed mongo依赖性 Spring Data 文档指定我们只需要将这个依赖项放入项
  • 引用 MongoDB Aggregation Pipeline 中的整个文档

    我可以使用 运算符引用 MongoDB 聚合管道中属性的各个值 但是 我如何访问 引用 整个文档 UPDATE 提供一个示例来解释场景 这是我正在尝试做的事情的一个例子 我有一系列推文 每条推文都有一个成员 集群 它指示特定推文属于哪个集群
  • MongoDB - 解释特定的解释输出

    我使用的是 MongoDB 版本 2 4 8 test 2014 03 25 14 42 13 0 gt gt gt db users getIndexes v 1 key id 1 ns test users name id v 1 ke
  • 关于 mongodb java 驱动程序的困惑[重复]

    这个问题在这里已经有答案了 我是 MongoDB 的初学者 我正在使用 JAVA 驱动程序来使用它 我有以下代码 MongoClient client new MongoClient DB d client getDB world DBCo
  • 我应该开发一个单独的 Express 服务器,还是处理 next.js 应用程序中的所有 API 调用?

    我的网站将执行 CRUD 操作 并将与 MongoDB 和 Firebase 存储 身份验证配合使用 开发单独的 Express 服务器而不是将所有内容集成到我的 next js 应用程序中的原因 优势是什么 据我所知 这一切都可以在我的
  • 更新 Meteor 中的嵌套数组

    这是我的架构 id FJwSEMdDriddXLKXh name t number 5 owners id 1 name Name address Address type Type gender Gender notes 单击后 我将在所
  • 使用 MongoDB docker 镜像停止虚拟机而不丢失数据

    我已经在 AWS EC2 上的虚拟机中安装了官方的 MongoDB docker 映像 并且数据库上已经有数据 如果我停止虚拟机 以节省过夜费用 我会丢失数据库中包含的所有数据吗 在这些情况下我怎样才能让它持久 有多种选择可以实现此目的 但
  • 如何使用 MongoDB 实现 ASP.NET Core 3.1 Identity?

    是一个 API 用于简化后端和逻辑代码来管理用户 密码 个人资料数据 角色 声明 令牌 电子邮件确认等 对于 Visual Studio 来说 支撑脚手架 https learn microsoft com en us aspnet cor
  • MongoDB 如何使用 $date 运算符进行查询?

    编辑 上下文 我正在使用 Talend ETL 工具 并在查询中使用 ISODate 或 Date 或 new Date 如下所示失败并出现错误 因此我需要解决方法 dt ISODate 2014 01 01 dt Date 2014 01
  • 显示来自 mongodb 的所有数据并在 doT.js 模板引擎中渲染它

    我想从 mongodb 中提取数据并将其传递给视图 一切似乎都正常 但我没有看到所有 10000 条记录都显示出来 而是只看到了一条 我觉得我非常接近解决它 但我陷入困境 我正在使用node mongodb native express和d
  • mongodb - 检索数组子集

    看似简单的任务对我来说是一个挑战 我有以下 mongodb 结构 services TCP80 data status 1 delay 3 87 ts 1308056460 status 1 delay 2 83 ts 1308058080
  • 使用 dockerfile 在 docker 中安装 mongodb 驱动

    我有一个 mongodb docker 容器 我需要另一个安装了 php 和 apache 的 docker 容器 我想从这个容器运行一个 php 脚本并将一些数据发送到 mongodb 容器以将数据保存在 mongodb 数据库中 所以我
  • mocha——手表和猫鼬模型

    如果我让 mocha 监视更改 每次保存文件时 mongoose 都会抛出以下错误 OverwriteModelError 无法覆盖Client模型一旦编译 我知道猫鼬不允许两次定义模型 但我不知道如何让它与mocha watch clie
  • 在 Windows 7 - 64 位上安装 Mongodb

    我是 mongodb 的新手 不知道如何安装它 因为我找不到视频或任何有用的资源来实现相同的目的 请帮助我在 Windows 7 上安装 mongodb 并提供确切的步骤 我尝试从该网站下载最新版本的 mongodb 但不成功 提前致谢 R
  • i18Next - NodeJS - 如何在不重新加载服务器的情况下更改翻译

    我正在使用 NodeJS 的 i18next 包来启用翻译 我将它作为标准 并为每个语言 国家对使用一个 json 文件 我想构建一个管理页面来编辑翻译 而无需深入研究代码 那么 如何 重新加载 管理员编辑过的 json 文件 而无需重新启
  • 如何使用 Sails.js 和 Waterline 更新 MongoDB 子文档中的特定键?

    当尝试使用 Sails js 和 Waterline ORM 更新 MongoDB 子文档中的单个键时 我遇到了问题 这就是我的person js模型看起来像 module exports attributes name type stri
  • 猫鼬的深层填充

    我有两个模式 一张用于用户 另一张用于帖子 在用户模式中 我有latestPost的一个属性 它是帖子模式中条目的ObjectId 当我加载用户对象时 我想将 lastestPost 作为对象获取 其中包含用户架构中作者的用户名 其中作者是
  • mongoDB白名单IP

    我看到类似的帖子 但没有一个能帮助我解决我的问题 在学习了从头开始构建 MERN 应用程序的 Udemy 教程后 我陷入了 mongoose 连接的困境 这是我的 index js 代码 const express require expr
  • Strapi 未加载 Digital Ocean 上托管的现有 MongoDB 中的集合

    我正在使用 Strapi 创建一个新应用程序 并尝试将其与托管在 Digital Ocean 上的 MongoDB 连接 但不幸的是Strapi 无法从现有 MongoDB 获取集合 在这里 我提到我实现 Strapi 与现有 MongoD
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i

随机推荐

  • 删除数组中的所有空间 javascript

    我有一个数组 需要从中删除空格 例如它返回如下 book row boat rain coat 但是 我想删除所有空白 我在网上看到的所有指南都说可以使用 replace 但似乎只适用于字符串 到目前为止 这是我的代码 function t
  • sqlalchemy mixin、外键和关系

    我在创建一个简单的 mixin 时遇到问题 我计划在一堆 sqlalchemy 声明类上使用它 基本想法是我想要一个创建 修改时间戳和一个创建 修改用户存储在多个表上 mixin 位于其自己的文件 global mixins py 中 并且
  • Task.Result 始终为 null

    我正在编写一些代码来通过 Task Factory FromAsync 在 WP7 应用程序中 执行 HttpRequest 任务的 Result 属性始终为 null 但我知道请求本身是正确的 因为如果我将其粘贴到浏览器或 Fiddler
  • 如何使用 html 5 跳转到视频位置

    我想使用 html5 video 标签来播放我的视频 如何设置视频开始播放的时间 例如我的视频长 90 秒 我想在 30 秒时开始播放
  • 程序崩溃并显示 0xC000000D 并且没有异常 - 如何调试它?

    我有一个使用第三方库的 Visual C 9 Win32 应用程序 当使用一组特定参数调用该库中的函数时 程序会崩溃并显示 异常代码 0xC000000D 我尝试附加 Visual Studio 调试器 没有抛出异常 C 也没有像访问冲突那
  • Java ExecutorService:awaitTermination所有递归创建的任务

    我用一个ExecutorService执行任务 该任务可以递归地创建提交给同一个任务的其他任务ExecutorService这些子任务也可以做到这一点 我现在遇到的问题是我想等到所有任务都完成 即所有任务都完成并且他们没有提交新任务 才继续
  • Xcode 将文件框中的 gpx 文件显示为灰色

    我希望我没有忽略任何事情 但我无法将 gpx 文件加载到 Xcode 中 因为它们在文件框中显示为灰色 见图 这在两个位置菜单中都有 在调试器 位置菜单中 参见下图 将 GPX 文件添加到项目 和 场景位置菜单 然而 预设 伦敦等 确实有效
  • 如何总结不同的groupby组合?

    我正在编制一份按县列出的前 3 名作物的表格 有些县的农作物品种相同 顺序相同 其他县也有相同的作物品种 但顺序不同 df1 pd DataFrame County Harney Baker Wheeler Hood River Wasco
  • 如何使用@types/express-session?

    当我写这个时 import Request from express serve static core router post req Request res next gt req session user user tsc给我一个错误
  • 在eclipse中安装了深色主题,但滚动条仍然是灰色的

    我在用日食月神 4 4 0 并试图让它完全黑暗 所以我安装了一个主题插件 Eclipse菜单 gt 帮助 gt Eclipse Marketplace 搜索 Eclipse Color Theme Plugin 在 Windows 首选项
  • 从 Windows 服务中的 OnStart 立即触发计时器_elapsed

    我正在使用一个System Timers Timer我的代码中有如下代码OnStartC Windows 服务中的方法 timer new Timer timer Elapsed timer Elapsed timer Enabled tr
  • 空的、不可编辑的 pg_hba.conf 文件

    我正在尝试使用本教程将我的 Sinatra 应用程序连接到 PostgreSQL 数据库 http samuelstern wordpress com 2012 11 28 making a simple database driven w
  • 不兼容的库版本:nokogiri.bundle 需要版本 11.0.0 或更高版本,但 libxml2.2.dylib

    当我尝试在 Hartl 的教程中运行 rspec 时 出现此错误 我用谷歌搜索了该错误 但它从来都不是针对特定版本的 而且修复程序实际上并不能解决我的问题 Users Jimbo rvm gems ruby 2 0 0 p247 gems
  • D3可折叠树不同节点颜色

    我在 d3 js 中有一个可折叠的树 我的目标是通过 类型 属性为节点着色 例如 类型 str 的节点应填充为红色 而类型 elem 的节点应填充为绿色 我就是无法让它发挥作用 有人能帮助我吗 这是我的代码
  • Android 资产、C、JNI

    如何使用 JNI 从 C 访问 Android 资产 例如 txt 文件 我正在尝试 file android asset myFile txt 以及本地 myFile txt 其中包含 jni 文件夹中的 myFile txt 副本以及
  • ActionMailer 和 Exchange

    我使用 Rails 应用程序和 Postfix 服务器成功通过 SMTP 发送邮件 现在我需要转移到启用了 POP3 和 SMTP 支持的 Exchange Microsoft ESMTP MAIL 服务 版本 6 0 3790 3959
  • SQL数据库自动备份[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 SQL 数据库 我需要每天 至少 备份它 最好每天多次 自动 这样它肯定会完成 我正在运行
  • emacs - 如何在子目录中进行查找文件搜索

    我想为 Emacs 实现类似 Resharper 的 转到文件 功能 当按下上述快捷键时 Resharper 会弹出一个接受通配符字符串的文本框 并显示一个自动完成菜单 其中列出了项目中与该通配符匹配的所有文件 source jetbrai
  • 鼠标悬停时显示链接

    我有页面的某些区域 单击这些区域时 会将用户重定向到某些地址 我的问题是 当用户 将鼠标悬停在 这些区域上时 他们会看到一个指针 但不知道它链接到哪里 就我的目的而言 用户知道他们被链接到哪里是很重要的 我相信当您将鼠标悬停在链接上时 Go
  • 保存图片到mongodb

    我正在尝试使用龙卷风 石油和 mongodb 来做到这一点 avat self request files avatar 0 body nomfich self request files avatar 0 filename try ima