我很难尝试在 Node.JS 中创建返回转换后文档的服务。当我在 Postman 中测试服务本身并将文件保存为 PDF 时,它工作得很好。但是,当我从新 API 执行此操作时,它不允许我打开文件,说它已损坏或无法打开。
这是当前的流程:
服务代码:(文件保存可以让我很好地查看文件,编码设置为application/pdf,utf-8编码)
if (!(data instanceof Buffer)) {
res.status(500);
return res.send(data);
}
res.send(data);
API 调用:
const formData = new FormData();
formData.append('file', file.buffer, { filename: file.originalname });
const headers = {
...formData.getHeaders(),
'Content-Length': formData.getLengthSync(),
};
const tmp: any = await this.httpClient
.post(`${settings.convertService}`, formData, { headers })
.toPromise()
.then((data) => {
return data;
})
.catch((err) => console.log(err, 'err was'));
// return Buffer.from(tmp.data) Yields the same result
return tmp.data;
我尝试执行 Buffer.from(tmp.data)
,结果相同。经过一些调试后,即使我没有添加任何内容,tmp.data 上的缓冲区大小还是略大,然后 data
来自 Service。