php - 我可以从 MongoDB 向 Web 浏览器提供媒体服务吗

标签 php mysql mongodb

我会尽量保持简单,没有太多额外的信息。我一直在研究 MongoDB,我相信它对我的下一个项目会很有效。但有一件事我不太清楚:从 GridFS 存储和检索文件( block )。

我们以 CMS 为例。如果我想显示(通过浏览器输出)图像,我会进入 MySQL 数据库,找到 key 并提取包含文件系统上的文件源的元数据,然后显示带有该 href 的图像标签。我知道我可以在 Mongo 中完美地存储图像/视频/等文件,并且可以检索二进制文件,但是如果我想显示该文件(将其推送到浏览器),我必须将内容写入临时文件,然后 echo我的 img 标签带有 href?这效率再高不过了。

我感觉我失去了一些东西。对于这种情况,MongoDB 更好吗?

澄清一下:我在典型的 LAMP 堆栈(开发而非生产)上使用 PHP 和 Apache,并在一个平台上工作以实现艺术家之间的创造性协作。因此,我会让几个艺术家在相同的文件上进行协作,并且我希望能够在这些文件中进行搜索、索引它们、将所有元数据保存在一起并使用分片。我真的认为 MongoDB 是正确的选择。

谢谢!

迈克尔

最佳答案

如果您想在数据库中存储二进制文件,您可以直接提供它们,而无需先将它们写入文件系统。您所要做的就是编写一个 PHP 脚本(或其他脚本)来发送数据以响应传入的 HTTP 请求,并使用正确的 media type在响应 HTTP header 中。

因此,如果我们谈论图像,则在 HTML 中您将执行以下操作:

<img src="/your_img_script.php?image=1234"></img>

然后只需编写 your_img_script.php 来查找图像 ID 1234,并使用 image/jpeg (或其他)内容类型 header 转储数据。

关于php - 我可以从 MongoDB 向 Web 浏览器提供媒体服务吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18730365/

相关文章:

php - Fat Free 框架 (F3) : custom 404 page (and others errors)

javascript - Bootstrap datepicker 显示没有错误但无法正常工作

MySQL GROUP BY 来自不同表的多列

mysql - 查找时间范围内的月份

java - mongodb聚合长于不同

javascript - 当尝试将上传文件的路径插入 MySQL 时,会创建重复文件

php - 如何将图像保存到 MySQL 数据库?

php - 提交表单时,列计数与第 1 行的值计数不匹配

mongodb - 如何删除 MongoDB 用户的 dropCollection 访问权限?

ruby-on-rails - 我如何在 Rail 2.3.5 中生成 mongoid.yml 配置?