首页 > 解决方案 > 使用 GridFS-Stream 通过 Axios 将图像文件发送到前端 React.js - 将块转换为字符串 base64

问题描述

所以我已经使用 Multer 和 Multer-Gridfs-Storage 成功地将我的图像文件下载到了我的 MongoDB 中,但是我在检索它时遇到了麻烦。

当我尝试使用 GridFS-Stream 检索数据时,它像之前的问题一样返回: GridFS : How to display the result of readstream.pipe(res) in an <img/> tag?

当我使用这段代码时,发送到我的前端的只是集合中的第一个块,但它实际上是可用的。

const readstream = gfs.createReadStream({ filename: files[0].filename });

readstream.on('data', (chunk) => {
    res.send({ image: chunk.toString('base64') })              
})

我怎样才能取回所有的块?我应该放弃并开始使用 GridFSBucket 吗?

标签: reactjsmongodbexpressaxiosgridfs-stream

解决方案


我最终尝试了这个并且它有效!

            let data = ''
            readstream.on('data', (chunk) => {
                data += chunk.toString('base64')
            })
            readstream.on('end', () => {
                res.send(data)
            })

推荐阅读