如何将图像文件的 createReadStream 传递到 HTTP Post 请求正文?

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

我正在编写一个测试,确保我的 API 不允许文件 >10MB。我需要将图像作为 Post 请求传递到此 API。

我相信我已经弄清楚如何从图像中读取数据 (如果我注销 assetSteam.on 那么我可以看到 bytesRead 是我的文件的正确大小 = bytesRead: 16337697)

export async function uploadPhoto(filePath: string): Promise<any> {
  const assetStream = fs.createReadStream(filePath);
  assetStream.on('data', function (rawImageData) {
    return myPhoto.uploadImage(JSON.stringify(rawImageData));
  });
}

传入 myPhoto.uploadImage 的参数是 HTTP 请求的正文。

我不确定如何传递此数据以将其作为图像正确读取到我的 Post 请求正文中

javascript node.js typescript
1个回答
0
投票

我最终选择了一个更简单的解决方案

  const imageData = fs.readFileSync(filePath, { encoding: 'base64' });

然后将字符串化的

imageData
传递到我的请求正文中。

工作很愉快。

© www.soinside.com 2019 - 2024. All rights reserved.