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

问题描述 投票:0回答:1

因此,我已经使用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吗?

reactjs mongodb express axios gridfs-stream
1个回答
0
投票

我最终尝试了此方法,并且有效!

            let data = ''
            readstream.on('data', (chunk) => {
                data += chunk.toString('base64')
            })
            readstream.on('end', () => {
                res.send(data)
            })
© www.soinside.com 2019 - 2024. All rights reserved.