如何让浏览器下载一张图片而不是打开它?
网上流传的许多并不能用的答案, 常见的是这样的:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<button onclick="down()">down</button>
<script type="text/javascript">
function down(){
location = "/downloadpic/icon.png"
var pic = window.open(location,"a1")
pic.document.execCommand("SaveAs")
}
</script>
</body>
</html>
这儿的问题是, window.open只会打开新窗口, 并且在新窗口中打开文件. 如果文件是图片, 浏览器只会显示而不是下载.
并且, pic.document.execCommand("SaveAs") 这一句似乎并没有什么用.
下面是正确答案. 使用标签, 加download属性, 就这么简单.
<body>
<a href="icon.png" download>download icon</a>
</body>
还可以为download属性指定下载文件名称:
<body>
<a href="icon.png" download="new_icon.png">download icon</a>
</body>