浏览器pdf文件预览的相关问题

firefox和chrome浏览器可以直接预览是因为自身带了pdf阅读器插件,而ie和safari浏览器默认下载,需安装插件才能在浏览器中预览。

1、加了PDFObject插件,该插件只是给页面加了元素,如何浏览器不支持embedded PDFs,PDFObject插件是不能够迫使浏览器实现在线预览。如果需要支持,可以用PDF.js插件。

2、访问的pdf文件是阿里云上的地址,在所有的浏览器里都默认下载,因为http请求的相应头Content-Type的值是application/octet-stream(二进制流),浏览器无法识别pdf文件,解决办法是服务端访问阿里云地址,下载后直接将流数据传给前端,修改相应头信息Content-Type:application/pdf,Accept-Ranges:bytes

js代码如下:


//查看电子申请表
function checkselftel2_applyform_show(){
	$.post(checkselftel2_g_url.pdfpreview,{"id":checkselftel2_userid,"orderType":"03"},function(data){
		if(data.success){
			var url=data.result.userSignfileUrl;//获取阿里云pdf的url
			if(url){
				$.post(checkselftel2_g_url.pdfdream+"?fileurl="+url,{},function(data){//获取服务端返回的流数据
					if(data){//有返回
//调用PDFObject插件
 var myPDF = PDFObject.embed(checkselftel2_g_url.pdfdream+"?fileurl="+url, "#checkselftel2_pdf_object");
						$("#checkselftel2_pdf_out").dialog({
							title:"查看电子申请表",
							width:800
						})
					}else{//无返回(包括url地址不存在,请求超时,异常)
						$.longhz.alert("获取电子申请表异常");
					}
				})
			}else{
				$.longhz.alert("暂无电子申请表");
			}
		}else{
			$.longhz.alert(data.msg);
		}
	})
}


你可能感兴趣的:(jquery插件)