最近做了个pdf报告下载的链接,因为用的是链接文件的地址,所以,在没有安装pdf reader或者pdf插件的环境下会弹出下载提示框提示下载,
但在已经安装reader或者插件的环境下,点击链接地址后直接在网页中打开了pdf文件,这不是我期望的结果;
实现弹出框提示下载有很多种方法,我现在说的通过IIS设置的方法去实现:
注:网上有很多误导的设置方法:如图:
这样设置后会将页面上所有链接变成弹出下载提示,甚至在地址栏输入URL后就提示下载当前页面,
这样的解决方案是不是有点无语。。。
OK,那我讲下我的设置,已经测试通过,
同样是上面那幅图,点击属性找到HTTP头下的文件类型/MIME Types,点击新类型,在里面输入如下信息:
关键扩展名:.pdf
内容类型:application/pdf
我这里只是拿PDF文件举例,其他的类型参考这里MIME类型大全;
如果想用JS,可以考虑这样去实现:
<script language="JavaScript">
function savepic(){
if(document.all.a1==null){
objIframe=document.createElement("IFRAME");
document.body.insertBefore(objIframe);
objIframe.outerHTML = "<iframe name=a1 style='0;hieght:0' src="+pic1.href+"></iframe>";
re = setTimeout("savepic()", 1);
}
else{
clearTimeout(re);
pic = window.open(pic1.href, "a1");
pic.document.execCommand("SaveAs");
document.all.a1.removeNode(true);
}
}
</script>
<a href="../images/btn.png" id="pic1" onclick="savepic();return false;" style="cursor: hand">下载</a>
还有用FileStream方式实现的,可以参考这篇文章