0

以下の簡単なコードを使用して、mongodb に保存されているファイルを取得しています。ファイルはダウンロードされますが、PDF 形式ではありません。ファイルの書き込み中に を設定するcontent_typegrid-fs apiapplication/pdfファイルが Mongo にあることがわかります。ダウンロードされたファイルは単なるBigBangTheoryであり、 ではありませんBigBangTheory.pdf。text/html などの他の形式でも同じ問題が発生します。

res.set('Content-Type', 'application/pdf');
gfs.createReadStream({ filename: 'BigBangTheory.pdf' }).pipe(res);

ありがとう!私はあなたの助けに感謝します!

4

1 に答える 1

0

ファイルのアップロード方法を確認することをお勧めします。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);
};
于 2015-06-29T14:25:46.857 に答える