我正在尝试使用外部API生成PDF,然后将该PDF返回给客户端而不将其保存到服务器。我知道我需要使用fs.createReadStream或管道,但是我不知道如何实现它。尽管我很高兴使用任何可行的方法,但我在后端使用Express,在前端使用axios。它仅适用于Chrome,因为它是内部工具。
PDF返回并使用CURL正确保存,但是使用JS API时不知何故不能保存服务器端(理想情况下它不必保存,但是只要到达客户端就没有关系了)。我尝试了pipe和readStream和writeStream的一些变体,以及仅从API调用返回.pipe(res),但我可以在客户端下载空白的PDF,但它没有数据。
这是前端的代码:
parent::toArray()
和后端:
.then((response)=>{
console.log('done', response)
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'file.pdf');
document.body.appendChild(link);
link.click();
})
理想情况下,我想使用API创建PDF,然后将PDF返回给客户端(或将PDF传递给Google云端硬盘)而不保存在服务器上。