1.后端把文件上传到服务器,给一个静态地址 ,用<a></a>包裹,href配置成静态文件得地址就可以了,也可以自己去监听要触发得dom,监听触发时候去创建<a><a/>,配置href即可,创建步骤可以参考2.
<a
style="
color: #1c4293;
text-decoration: underline;
"
target="_blank"
href="https:/XXX/XXXX/11.pdf"
download
>
你要下载得链接名字 </a></span
>
2.后端返回得是文件流,需要借用Blob
使用Blob需要自己使用new Blob()得到一个Blob实例对象,Blob实例对象接受两个参数,一个是文件内容(也就是文件流,用接口向后端取),一个是类型,当然了下载也是靠创建<a></a>,具体代码如下
把我的代码考到自己项目绑定在dom就可以看到demo效果,此时文件内容为“这里放用接口取回来的文件流”,类型问text, 实现自己的需求,记得更换文件类型
download(){ //绑定在dom的事件
const myBlob = new Blob(["这里放用接口取回来的文件流"], { type: "text/plain" })
const fileName = "blob.txt";
console.log(myBlob)
const link = document.createElement("a");
link.href = URL.createObjectURL(myBlob);
link.download = fileName;
link.click();
link.remove();
URL.revokeObjectURL(link.href);
},