我有一个要通过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)
答案 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);