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