0

为什么下载的图片格式不正确?

import * as fs from 'fs';
import * as request from 'request-promise-native';

const download = async (url) => {
  console.log(`Downloading ${url}`);
  const options = {
    url,
    resolveWithFullResponse: true,
  };
  const response = await request.get(options);
  console.dir(response.headers);
  return fs.writeFileSync('image.jpg', response.body);
};


const main = async () => {
  try {
    await download('https://dz2cdn1.dzone.com/storage/rc-covers/3339976-refcard-cover141.png');
  } catch (e) {
    console.error(e);
  }
};

main().then(() => console.log('success')).catch((e) => console.log(e));

生成的图像格式错误,无法打开。关于导致问题的原因以及如何解决问题的任何想法?

4

1 回答 1

2

默认情况下,request将响应视为 utf-8 文本。如果要将响应保留为二进制(特别是单个Buffer),则需要encoding: nullrequest()选项中显式设置。

于 2017-02-10T15:05:16.237 回答