问题标签 [gridfs-stream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
855 浏览

node.js - Gridfs-stream、多方中间件的编码问题

我在使用 GridFS 正确存储和检索文件时遇到了一些问题。目前,如果我提交一个 .txt 文件,我最终会取回文件的内容,但如果我提交一个 .doc 文件,我会得到一堆乱码(比如带有问号的黑色钻石)。

我的最终目标只是能够提交文件,然后允许某人稍后根据不同的请求下载文件。

编写代码:

阅读代码:

有什么建议么?我非常感谢您能提供的任何帮助。谢谢。

编辑:问题与角度上传问题有关。

0 投票
2 回答
7347 浏览

javascript - Node.js 文件上传(Express 4、MongoDB、GridFS、GridFS-Stream)

我正在尝试在我的 node.js 应用程序中设置文件 API。我的目标是能够将文件流直接写入 gridfs,而无需最初将文件存储到磁盘。看来我的创建代码正在运行。我能够将文件上传保存到gridfs。问题是读取文件。当我尝试通过 Web 浏览器窗口下载保存的文件时,我看到文件内容包含以下内容:

所以我的问题是在将文件流保存到gridfs之前我需要做什么才能从文件流中去除边界信息?这是我正在使用的代码:

顺便说一句,我目前没有为这些路由使用任何中间件,但我愿意这样做。我只是不希望文件在发送到 gridfs 之前命中磁盘。

编辑:

根据@fardjad,我添加了用于多部分/表单数据解析的节点多方模块,它有点工作。但是当我下载上传的文件并与原始文件(作为文本)进行比较时,编码有很多差异,下载的文件无法打开。这是我最近的尝试。

最终编辑:

这是我从另一个开发人员那里复制并修改的简单实现。这对我有用:(我仍在试图弄清楚为什么它在我原来的快递应用程序中不起作用。似乎有干扰)

https://gist.github.com/pos1tron/094ac862c9d116096572

0 投票
1 回答
132 浏览

node.js - 使用 nodejs 下载 GridFs 无法启动

我正在尝试使用 GridFS 下载保存在 mongoDB 中的 +200M 二进制文件。我的问题是无法开始下载。我将 nodejs 与 mongodb 和 gridfs-stream 一起使用。

在 routes.js 中:

在我看来,某处:

从 nodejs 日志生成响应:

但下载永远不会开始......我不知道发生了什么......

0 投票
1 回答
1018 浏览

python - 尝试使用 fs.get 函数获取 mongoDB 中的块

我正在尝试使用 GridFS 获取存储在 mongoDB 中的文件。

我编写了这个函数来使用 GridFS 将文件存储到 mongoDB

这个函数通过传递文件 ID 来获取 mongoDB 中的文件,在这种情况下是 5590c2a71d41c81703458433。

但我不断收到此错误: gridfs.errors.NoFile: no file in gridfs collection Collection(Database(MongoClient('localhost', 27017), u'gridfs_example'), u'fs.files') with _id '5590c2a71d41c81703458433'

有帮助获取文件吗?我的方法错了吗?

0 投票
2 回答
3364 浏览

javascript - node.js上传下载pdf文件

框架:node.js/express.js/busboy/gridfs-stream(mongodb)

我正在使用 busboy 上传文件,然后使用 gridfs-stream 将文件存储在 mongodb gridfs 中。

下载很简单:使用g​​ridfs-stream的createReadStream 我从mongodb读取内容,然后使用以下代码将其发送到浏览器。

问题:当我上传一个 90kb 的 pdf 文件时,它可以正常上传。我在 mongodb 中看到大小是正确的。但是当我下载时,下载文件的文件大小约为165kb。存在不匹配。文本文件不会发生这种情况。当然它与数据类型有关。

有人可以帮忙吗?

0 投票
1 回答
785 浏览

node.js - gridfs-stream 将文件上传到 mongodb 在 node.js 服务器代码中不起作用

gridfs-stream 上传文件不工作,但下载文件工作请给出解决方案

gridfs-stream 文件上传代码不起作用 文件下载代码运行良好。如何在路径中设置 readstream 文件的路径。

0 投票
0 回答
134 浏览

node.js - 使用 Nodejs 从 Mongodb GridFS 访问多个图像时出错:发送后无法设置标头

我正在使用上面的代码从 GridFS 获取所有图像。当我为单个 ID 运行它时,它可以工作。但是,当我尝试从数组访问时,它会引发错误,因为“发送后无法设置标头”。我对 mongodb 很陌生。请帮我。

0 投票
1 回答
5093 浏览

java - 如何在 Spring Rest Call 中使用 GridFS 从 Mongo 发送检索到的图像?

我已经使用 Spring Data 和 GridFs 模板从 Mongo DB 中检索了图像

所以我不知道如何将检索到的输入流返回给用户。

说他们要求http://host.com/apple作为 春季休息电话apple现在我的应用程序使用从 mongodb 数据库中检索苹果图像的名称来处理请求。现在无需保存任何地方,我想将响应显示为将http://host.com/apple在浏览器中显示图像的用户的图像。我究竟需要如何实现这一点?

您能否分享任何代码存储库以在 Rest Call 中处理图像请求?

Controller Code

此函数将从 mongodb 获取图像

错误

0 投票
0 回答
731 浏览

javascript - 在 Meteor 中访问服务器端的 GridFS 文件

在这一点上,由于缺乏文档,我简直是在抓狂。

我只是想读取使用 GridFS 上传到服务器的文件。在客户端,它就像去http://app.url/cfs/files/collection/id. 我已经检查以确保它以这种方式工作。

所以我查看了 CollectionFS 的源代码,发现了这段代码

我认为既然这样行得通,那么这个:

或者,使用 fast-csv,这个:

我几乎什么都试过了。文件的上传进度为 100,可通过网络浏览器访问 URL。但无论我做什么,数据函数都不会运行。ReadStream 将始终指示所有数据在通过管道传输后已被读取,但数据实际上并未在任何地方通过管道传输,并且输出函数永远不会运行。

我不知所措。任何想法都会有所帮助。

感谢所有读者。

0 投票
1 回答
2627 浏览

javascript - 使用 ng-file-upload 和 mongo gridfs 上传文件

我想将超过 16MB 的文件上传到我的数据库 Mongo。在前端部分,我使用 ng-file-upload 模块(https://github.com/danialfarid/ng-file-upload)。在后端,我使用 connect-busboy 和 gridfs-stream 模块

我收到以下错误: POST /api/files/500 3.084 ms - 1992 错误:不支持的内容类型:应用程序/json;charset=utf-8 at Busboy.parseHeaders (C:...\node_modules\busboy\lib\main .js:68:9) 在新的 Busboy...

当文件被选中时,我的控制器的函数 $scope.uploadFile($file) 被调用,它使用 post 方法调用后端服务器 api。问题似乎出在 api 调用部分。

我有两个问题: - 我做错了什么?有没有更好的方法呢?

我的代码如下所示:

前端

html页面

然后我有我的controller.js

然后是我的 service.js 文件,其中对 api/files/ 进行了 post api 调用:

var appServices = angular.module('appServices',[]);

后端 现在在后端,我有我的 app.js 文件、api.js 文件和数据库配置文件,如下所示:

api.js 文件:

应用程序.js

这是我的数据库配置文件