[获取图像并使用koa2发送

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

我正在尝试从外部URL提取图像,然后将其作为响应发送到koa2。为了获取图像,我正在使用Axios库。

我正在尝试通过以下方式做到:

router.get('/get-image', async (ctx, next) => {
    const {authToken} = ctx.query
    const response = await axiosInstance.get(
        'https://www.someurl.com/image/992',
        {
            headers: {
                Authorization: `Bearer ${authToken}`,
            },
        }
    )

    ctx.type = 'image/jpeg'
    ctx.body = response.data
})

但是我从该请求获得的图像无效。它仅显示空白矩形。

有人可以在正确的方向上向我指出如何重新发送接收到的图像吗?

node.js koa koa2
1个回答
0
投票

设置responseType: 'stream'。 'arraybuffer'也可以工作,但是'stream'更好,因为您只是在遍历字节。

默认情况下,我相信axios会解码为utf-8字符串,这对于图像二进制数据当然是毫无意义的。

const response = await axios.get(url, {
  responseType: 'stream',
  ...
})
© www.soinside.com 2019 - 2024. All rights reserved.