下载一个文件,而不是在新的选项卡中打开它以在web浏览器中查看



现在我正在创建一个网站,该网站从包含我们所有数据的另一个页面获取href。然而,当我点击链接时,它并没有下载.dat文件,而是在当前选项卡或新选项卡中以纯文本形式打开它。

这是我使用的代码行

<a href='https://www.[I dont want to put the actual web address]/$namehref' download>$size</a>

$namehref只是要下载的文件的名称。

当我们有一个.tar文件时,这是有效的,但不想为那些可以在网页内打开和读取的文件工作。

使用HTML5下载属性时,需要指定文件类型和名称。

<a href="download/acme.txt" download="Acme.txt">Download Text</a>

编辑-文件、类型和名称是可选字段。这只适用于相对目录中的文件。从Chrome 65开始,来自跨源资源的下载将忽略html 5属性。

更好的选择是使用小型Js函数来代表您强制下载文件。

function forceDown(url, filename) {
fetch(url).then(function(t) {
return t.blob().then((b) => {
var a = document.createElement("a");
a.href = URL.createObjectURL(b);
a.setAttribute("download", filename);
a.click();
});
});
}
<a href="#" onclick="forceDown('https://loremipsum.de/downloads/original.txt','original.txt');">Click here</a>

请确保在资源服务器的标头中包含Access Control Allow Origin。

最新更新