pdf.js用流的方式展示pdf檔案
修改viewer.js
var DEFAULT_URL = 'compressed.tracemonkey-pldi-09.pdf' 裡面是PDF的路徑 刪除整條資料,在viewer.html中重新定義
引入Jquery
以下程式碼放在viewer.html中
ajax程式碼部分
var DEFAULT_URL = "";//剛才刪除的變數在這裡重新定義
var PDFData = "";
$.ajax({
type:"post",
async:false, //
mimeType: 'text/plain; charset=x-user-defined',
url:檔案流請求地址,
success:function(data){
PDFData = data;
}
});
var rawLength = PDFData.length;
//轉換成pdf.js能直接解析的Uint8Array型別,見pdf.js-4068
var array = new Uint8Array(new ArrayBuffer(rawLength));
for(i = 0; i < rawLength; i++) {
array[i] = PDFData.charCodeAt(i) & 0xff;
}
DEFAULT_URL = array;
引入<script src="viewer.js"></script>
一定要注意以上程式碼要放在<script src="viewer.js"></script>引入之前
java程式碼部分
我是從Oracle取的blob,sql就不寫了
String filePath = "temp" + File.separator ; //file存放地址,temp是tomcatbin目錄下的
String path = filePath + File.separator + name;//file的路徑,name是檔案的名字
File pdfFile = new File(path + File.separator + name + "pdf.pdf");
if (!pdfFile.exists()) {//判斷本地檔案,減少資料庫壓力
Blob sbrpdf = dsDeclarer.getBlob(0, "namepdf");
InputStream is = sbrpdf.getBinaryStream();
byte[] b = new byte[(int) sbrpdf.length()];
is.read(b);
is.close();//記得關閉流
RaterUserBiz.createDir(path);
FileIOUtil.writeBytesToFile(b, pdfFile);
}
//接下來的流往哪裡傳輸根據需求,這裡不寫了,有問題的話發評論我看到就會回覆