我有一个来自数据库的 Base64 字符串,我想通过 GET 提供该字符串。我知道必须首先将其转换为缓冲区,然后我需要将 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');
}
Run Code Online (Sandbox Code Playgroud)
图像应该显示,但没有显示。我在 chrome 中得到类似的东西:( https://i.ibb.co/kMWJxn2/Capture.png )
以供参考:
问题: Content-Typeimage/png; charset=utf-8在应该显示的时候却显示了image/png
解决方案:使用writehead和end
const buffer = await this.authServ.getavatar();
res.writeHead(200, {'Content-Type': 'image/png'});
res.end(buffer);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3774 次 |
| 最近记录: |