我有一个来自后端的pdf文件路径,类似于:http://example.com.com:3000/Invoices/11117_131805449_Invoice.pdf
...我想点击按钮下载。
在前端我做了:
const url = window.URL.createObjectURL(
new Blob([invoicePath], { type: "application/pdf" })
);
const link = document.createElement("a");
link.href = url;
link.setAttribute("download", `invoice_${id}.pdf`);
document.body.appendChild(link);
link.click();
link.parentNode.removeChild(link);
而且,当我点击下载它时,它被下载了,但显示一个错误,如:“无法加载PDF文档”...你知道吗?
1条答案
按热度按时间3bygqnnd1#
您正在使用invoicePath创建一个Blob URL,但是,这种方法将不起作用,因为创建Blob URL实际上并不从服务器下载文件。
要下载该文件,您需要向服务器发出请求以获取PDF文件,然后从响应数据创建Blob URL。下面是应该可以工作的代码的更新版本: