如何将base64字符串用作图像?

时间:2019-05-18 17:24:27

标签: node.js base64

我有一个要通过GET提供服务的数据库中的base64字符串。我知道必须先将其转换为缓冲区,然后再将Content-Type设置为image / png(因为我的图像是png)。问题是图像未显示。如果有帮助,我正在使用Nest JS作为框架。

这是我要提供的base64字符串: https://pastebin.com/kbvGLXSp

我尝试通过Chrome和Postman运行端点,我得到了相同的结果。图片没有显示

// From auth.controller.ts
@Get('avatar')
@Header('Content-Type', 'image/png')
  async getAvatar(){
    return await this.authServ.getAvatar();
  }


// From auth.service.ts
async getAvatar() {
    const db = this.AUTH_REPOSITORY;
    const user = await db.findOne({where: {id: 1}});
    return Buffer.from(user.avatar, 'base64');
}

该图像应显示,但不显示。我在chrome中看到了类似的内容:(https://i.ibb.co/kMWJxn2/Capture.png

1 个答案:

答案 0 :(得分:0)

供参考:

问题: Content-Type显示为'image / png; charset = utf-8”,则应为“ image / png”

解决方案:使用写入头并结束

const buffer = return await this.authServ.getavatar()
res.writehead (200,  {‘Content-Type’: ‘image/png’});   
res.end(buffer);