首页 > 解决方案 > 从 gridfs-stream 检索时无法将 PDF 呈现到浏览器

问题描述

我的控制器:-

 view: async (req, res) => {

        var id = req.params.pid
        id = mongoose.Types.ObjectId(id)

        const project = await Project.findById(id)

        const upid = project.uploadedGridFileId
        var uploads = mongoose.createConnection("mongodb://localhost:27017/techv-uploads", { useNewUrlParser: true, useUnifiedTopology: true })
        //console.log(uploads)

        uploads.once('open', function () {
            var gfs = gridfsStream(uploads.db, mongoose.mongo)
            var readstream = gfs.createReadStream({
                _id: mongoose.Types.ObjectId(upid),
                root: "projectPdfs"
            })

            //console.log(readstream)
            res.set("Content-Type" , "application/pdf")
            res.set("Content-Disposition", "inline" )
            readstream.pipe(res)
        })
    }

它提供了下载选项,而不是直接显示在浏览器上。它适用于图像文件,但不适用于 pdfs 。

标签: javascriptnode.jsgridfsgridfs-stream

解决方案


推荐阅读