javascript - Javascript 代码可以很好地下载图像但不能下载 PDF 文件
问题描述
以下代码可以正常下载远程图像,但在更改它以下载远程 PDF 文件时不起作用,这是我正在使用的代码:
<a href="https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf" data-remote>Remote PDF</a>
<script defer type="text/javascript">
const a = document.querySelector('a[data-remote]')
a.addEventListener('click', async (e) => {
e.preventDefault()
const file = await fetch(e.target.href);
const blob = await file.blob();
const blobUrl = URL.createObjectURL(blob);
const downloadLink = document.createElement("a");
downloadLink.href = blobUrl;
downloadLink.download = 'file.pdf';
downloadLink.click();
})
</script>
解决方案
您可以将download
属性添加到a
标记并删除脚本以下载 pdf。
<a href="https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf" download >Remote PDF</a>
或者如果你想用js下载,可以考虑mode:'no-cors'
在fetch的时候加上
推荐阅读
- json - jq:如何根据对象中的数据将对象从数组传递到不同的文件?
- python - Pygame 逼真的角度
- python - urllib.request 上的 Python 404
- c++ - 无法在 C++ 中使用邻接表来表示图形
- kernel - 在 HP DL380 G4 上安装 Gentoo 无法安装内核源
- android - 无法在 firebase 16.0.2 中保存新数据
- java - 如何在回收站视图中放置横幅
- drupal-8 - drupal 8:如何使用路由参数重定向路由?
- python - 从 SimpleITK 变换中获取矩阵和平移
- angular - 如何控制台记录响应的内容?