直接下载
var url = this.GLOBAL_URL + "/api/GetFile?id=" + id; // 请求的url + id
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true)
xhr.responseType = "blob";
xhr.setRequestHeader("client_type", "DESKTOP_WEB");
xhr.setRequestHeader("Authorization", token); // 自定义请求头
xhr.onload = function(){
if(this.status == 200){
var blob = this.response;
var fileName = filename;
if(window.navigator.msSaveOrOpenBlob){ // IE浏览器下
navigator.msSaveBlob(blob, fileName);
} else {
var link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
link.click();
window.URL.revokeObjectURL(link.href);
}
}
};
xhr.send()
在线预览
首先到官网下载pdf.js文件,下载地址:mozilla.github.io/pdf.js/gett…
- 把下载好的PDF.js 文件夹放到项目的静态资源目录中(index.html哪里的目录)
+ <iframe
id="previewPdf"
:src="'/pdfjs-2.0.943-dist/web/viewer.html?file=' + fileUrl +'&.pdf '"
style="height: 42.5rem /* 680/16 */;"
width="100%"
></iframe>
js代码
+ download (POSTData) {
var oReq = new XMLHttpRequest()
oReq.open('POST', `${axiosrequest.baseUrl}/api/Report/GetReport`, true)
oReq.setRequestHeader('Content-type', 'application/json;charset=UTF-8')
oReq.setRequestHeader('user_token', gettoken())
oReq.setRequestHeader('signature', 'signature')
oReq.responseType = 'blob'
oReq.onload = oEvent => {
var arrayBuffer = oReq.response // 注意:不是oReq.responseText
if (arrayBuffer) {
let openUrl = window.URL.createObjectURL(arrayBuffer)
// console.log(openUrl)
this.fileUrl = openUrl
// 关闭遮罩
this.loading = false
}
}
oReq.send(JSON.stringify(POSTData))
}