前端js中实现图片或word/pdf/excel等文件下载后直接打开(移动端也可使用)
第一种方法:Hbuild中实现图片或word等文件下载后直接打开将地址换成自己文件的地址即可首先注册下监听事件:(vue中在mounted中注册即可)document.addEventListener('plusready', function () {//console.log("所有plus api都应在此事件发生后调用,否则会出现plus is undefined");...
·
第一种方法:Hbuild中实现图片或word等文件下载后直接打开
将地址换成自己文件的地址即可
首先注册下监听事件:(vue中在mounted中注册即可)
document.addEventListener('plusready', function () {
//console.log("所有plus api都应在此事件发生后调用,否则会出现plus is undefined");
});
function downloadWj() {
var dtask=plus.downloader.createDownload("http://image.baidu.com/search/down?tn=download&ipn=dwnl&word=download&ie=utf8&fr=result&url=http%3A%2F%2Fpic33.nipic.com%2F20131007%2F13639685_123501617185_2.jpg&thumburl=http%3A%2F%2Fimg4.imgtn.bdimg.com%2Fit%2Fu%3D508387608%2C2848974022%26fm%3D26%26gp%3D0.jpg",
{
method: "GET"
});
var w = plus.nativeUI.showWaiting("开始下载");
dtask.addEventListener("statechanged", function(task, status) {
switch (task.state) {
case 3: // 已接收到数据
if (w) {
w.setTitle("数据下载中:" + task.downloadedSize + "/" + task.totalSize);
}
break;
case 4: // 下载完成
if (status == 200) {
if (w) {
w.close();
}
plus.runtime.openFile(task.filename, {}, function(e) {
QxMobile.Alert("无法打开此文件:" + e.emssage);//如果报错可换成自己的提示方式
});
} else {
Alert("下载失败:" + status);//如果报错可换成自己的提示方式
plus.nativeUI.closeWaiting();
}
break;
}
});
dtask.start();
}
第二种方法:js中实现下载
function download(){
var blob = new Blob([], { type: 'application/excel;charset=utf-8' });
var downloadElement = document.createElement('a');
downloadElement.style.display = 'none';
var href = window.URL.createObjectURL(blob); //创建下载链接
//let sendParams = Base64.encode(JSON.stringify('传递的参数')) // 可以省略 具体看业务需求
downloadElement.href ='http://192.168.27.1:8080/downloadMailFj?pxh=' + this.pxh + '&xh=' + item.XH;// 此处可以通过拼接字符串的方式传递参数,此处可换成自己的连接地址
console.log(downloadElement.href);
document.body.appendChild(downloadElement);
downloadElement.click();// 点击下载
//document.body.removeChild(downloadElement); // 下载完成之后移除元素
// window.URL.removeObjectURL(href); // 释放掉blob对象
}
第三种方法:js通过创建iframe标签实现:
function download(){
var elemIF = document.createElement('iframe')
elemIF.src ='http://192.168.127.1:8080/downloadMailFj?pxh=' + this.pxh + '&xh=' + item.XH;//换成自己后端文件流地址即可
console.log(elemIF.src);
elemIF.style.display = 'none'
document.body.appendChild(elemIF);
}
第四种方法:
function download(){
window.open('http://192.168.127.1:8080/downloadMailFj?pxh=' + this.pxh + '&xh=' + item.XH);//括号内换成自己后端文件流地址即可
}
更多推荐
已为社区贡献3条内容
所有评论(0)