我正在编写一个测试,确保我的 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 请求正文中
我最终选择了一个更简单的解决方案
const imageData = fs.readFileSync(filePath, { encoding: 'base64' });
然后将字符串化的
imageData
传递到我的请求正文中。
工作很愉快。