我实现的方式是将文件流直接输向浏览器,方式如下:
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=XXX");
response.getOutputStream().write(...);
这样在谷歌、火狐下可以预览pdf,IE下就遇到下载框弹出,不是想要的网页预览效果。
查阅资料发现了
http://www.cnblogs.com/brucejia/archive/2012/12/24/2831060.html这个帖子,里面发现这样一句话【Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名。(请注意,这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户询问保存位置。) 】。
是因为这个影响IE下的作用吗?有办法解决吗?
---恭祝各位新年快乐!
下一个jquery.media.js 直接用注意加class就行了
<script type="text/javascript" src="jquery.media.js"></script>
<a href="$v.download" target="_blank" class="media">
参考Response ContentType "application/PDF" not working in "IE 11"
IE本身不支持PDF,需要安装PDF的ActiveX控件。
如果安装有Adobe Reader等,可以参考在jsp上显示pdf||网页直接打开PDF 在IE中显示pdf文档的方法及参数设置 考虑用object标签使用pdf插件嵌入ie中
自己写的demo,https://download.csdn.net/download/weixin_48188002/12668230