使用gridFS在mongoDB中存储文件(图像)

我正在用angularJS编写此网页,我希望人们可以编辑和存储文本和图像。我创建了一个文件上传功能,可以让您从用户计算机上载文件。问题是将此文件存储到mongoDB中。我已经阅读了许多关于gridFS的示例,但是没有一个示例完全符合我的尝试。这是我的代码:

web-server.js:

app.post('/uploadFile', function(req,res){
console.log("Retrieved:");
console.log(req.files);

var Grid = require('gridfs-stream');
var gfs = Grid(DB, mongoose.mongo);
// streaming to gridfs
var writestream = gfs.createWriteStream(req.files.file);    
fs.createReadStream(req.files.file.path).pipe(writestream);

services.js:

function uploadFilesToServer(file){ 
    var fd = new FormData();
    fd.append("file", file);
    var deferred = $q.defer();
    console.log("trying to save:");
    console.log(file);
    $http({
        method:"POST",
        url: "uploadFile",
        data: fd,
        withCredentials: true,
        headers: {'Content-Type': undefined },
        transformRequest: angular.identity
    }).success(function(data){
        var returnValue = [true, file, data];
        deferred.resolve(returnValue);
    }).error(function(data){
        var returnValue = [false, file, data];
        deferred.resolve(returnValue);
    });
    return deferred.promise;
}

目前,我在运行代码时没有收到任何错误消息,但是db.files或db.chunks中存储的图像也没有。任何帮助表示赞赏。

mr2k

如果用户未设置,则GridFS-stream通常将其数据存储在db.fs.files / db.fs.chunks中。

要更改此设置,您必须添加:

{
   ....
   root: 'my_collection'
   ....
}

到gridfs-stream选项。

来自NPM文档:

createWriteStream

To stream data to GridFS we call createWriteStream passing any options.

var writestream = gfs.createWriteStream([options]);
fs.createReadStream('/some/path').pipe(writestream);
Options may contain zero or more of the following options...

{
    _id: '50e03d29edfdc00d34000001', // a MongoDb ObjectId
    filename: 'my_file.txt', // a filename
    mode: 'w', // default value: w+, possible options: w, w+ or r, 
    see [GridStore]    
    (http://mongodb.github.com/node-mongodb-native/api-generated/gridstore.html)

    //any other options from the GridStore may be passed too, e.g.:

    chunkSize: 1024, 
    content_type: 'plain/text', 
    // For content_type to work properly, set "mode"-option to "w" too!
    root: 'my_collection',
    metadata: {
        ...
    }
} 

有关更多信息,请参见https://www.npmjs.org/package/gridfs-stream

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用GridFS和Meteor将图像存储在Mongodb中

Python在MongoDB gridfs中存储简历图像

使用 Gridfs 或 BSON 将图像存储在 MongoDB

使用vb.net Webservice从MongoDB(GridFs)存储和检索图像并在HTML中显示

使用mgo将上载的文件存储在MongoDB GridFS中,而不保存到内存

在使用gridfs保存图像之前获取mongodb文件ID

使用GridFS在MongoDB 2015中保存和加载图像

使用Gridfs将base64字符串图像存储到MongoDB

无法使用MongoDb GridFs上传文件

使用GridFS将视频/图像保存到NodeJS服务器中的MongoDB中

是否可以在GridFS中存储带有标签的图像?

如何在未在MongoDB中添加文件并使用Java的情况下使用GridFSInputFile和GridFS?

如何在mongodb中存储文件/图像的网址?

如何在MongoDB GridFS中更改存储桶名称?

使用mongoose将文件存储在mongodb中

如何使用Rust MongoDB驱动程序从添加到GridFS的文件中获取ID?

将 gridfs 文件信息存储在自定义表中

检索存储在 mongodb 中的图像

使用 Node.js 在 MongoDB 中存储图像

使用ReactiveMongo和GridFS在PlayFramework中调整上传图像的大小

显示存储在 mongodb 上的图像文件

使用Node.js将文件存储在mongodb中

在Mongoose中使用Multer将文件存储到MongoDB中

使用nodeJS loopback 2.5将PDF文件存储在mongoDB中

如何使用sql中的路径存储将图像存储在文件夹中

如何使用C#枚举GridFS中的文件

如何使用nodeJS下载保存在gridFS中的文件

使用NodeJS中的gridfs通过元数据删除文件

使用GraphicsMagick处理GridFS文件并将其存储为新文件