IE瀏覽器與PDF檔案
阿新 • • 發佈:2020-11-12
pdf檔案在瀏覽器預覽有很多方式:
1、ifream:支援base64,blob,url
2、pdf.js外掛可以支援
3、vue-pdf可以支援
2和3的方式都是使用外掛的方式,網上資料還是比較齊全的有興趣可以去看看動手實踐一下
url預覽和url轉base64略過
base64檔案可以通過下面的方法將檔案轉換為blob格式
dataURItoBlob(dataURI) { var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; // mime型別 var byteString = atob(dataURI.split(',')[1]); //base64 解碼 var arrayBuffer = new ArrayBuffer(byteString.length); //建立緩衝陣列 var intArray = new Uint8Array(arrayBuffer); //建立檢視 for (var i = 0; i < byteString.length; i++) { intArray[i] = byteString.charCodeAt(i); } return new Blob([intArray], {type: mimeString}); }
blob格式的檔案流可以使用 window.URL.createObjectURL()的方法轉換為blob連結來進行展示。
但是以上的方法只有url連結可以在IE瀏覽器中預覽,base64和blob都不行,base64和blob IE不支援,且blob轉url連結的方法ie也不支援,可謂奇葩中的奇葩。
ie瀏覽器想要預覽檔案流我是沒有找到可行的辦法的,只有把檔案流轉換為blob格式後使用
window.navigator.msSaveOrOpenBlob(blob,fileName) 方法,將檔案流下載到本地然後讓使用者自己預覽這一條路子