ファイルのアップロード方法を確認することをお勧めします。gridfs-stream から pdf ファイルをダウンロードしようとして同様の問題が発生しましたが、ファイルを読み取ることができませんでした。アップロードの一部としてのフォーム部分データが、リクエストの一部としてドキュメントの頭と足に情報を添付していることを発見しました。私の解決策は、 busboy を使用してフォームパートのアップロードを管理することでした:
var Busboy = require("busboy");
exports.create = function(req, res, next) {
var busboy = new Busboy({ headers : req.headers });
busboy.on("file", function(fieldname, file, filename, encoding, mimetype) {
var writeStream = gfs.createWriteStream({ filename : filename, contentType : mimetype, metadata : { account : req.user.parameters["account_id"] } });
writeStream.on('close', function(file) {
res.json({ _id : file._id, filename : filename, metadata : { account : req.user.parameters["account_id"], uploaded : new Date() } });
});
writeStream.on('error', function(err) {
console.log(err);
});
file.pipe(writeStream);
});
req.pipe(busboy);
};