前端js中实现图片或word/pdf/excel等文件下载后直接打开(移动端也可使用)

15 篇文章 0 订阅

第一种方法: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);//括号内换成自己后端文件流地址即可
}

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
前端实现在线预览常用文件的方法有两种: 1. 使用第三方插件或工具,如 Google Docs、Office Online、PDF.js 等,这些工具可以将文件转化为网页格式进行在线预览。 2. 使用 HTML5 提供的文件预览功能,支持预览常用的图片、音频、视频和 PDF 等文件。 下面分别给出实现方法和示例代码: 1. 使用第三方插件或工具 Google Docs 示例: ```html <!-- 在 HTML 嵌入 Google Docs 预览链接 --> <iframe src="https://docs.google.com/gview?url=http://example.com/sample.docx&embedded=true"></iframe> ``` Office Online 示例: ```html <!-- 在 HTML 嵌入 Office Online 预览链接 --> <iframe src="https://view.officeapps.live.com/op/embed.aspx?src=http://example.com/sample.docx"></iframe> ``` PDF.js 示例: ```html <!-- 在 HTML 嵌入 PDF.js 预览链接 --> <iframe src="https://mozilla.github.io/pdf.js/web/viewer.html?file=http://example.com/sample.pdf"></iframe> ``` 2. 使用 HTML5 提供的文件预览功能 图片预览示例: ```html <!-- 在 HTML 嵌入图片预览 --> <img src="http://example.com/sample.jpg" alt="Sample Image" /> ``` 音频预览示例: ```html <!-- 在 HTML 嵌入音频预览 --> <audio src="http://example.com/sample.mp3" controls></audio> ``` 视频预览示例: ```html <!-- 在 HTML 嵌入视频预览 --> <video src="http://example.com/sample.mp4" controls></video> ``` PDF 文件预览示例: ```html <!-- 在 HTML 嵌入 PDF 文件预览 --> <embed src="http://example.com/sample.pdf" type="application/pdf" /> ``` 以上是常见文件在线预览的实现方法和示例代码,具体实现还需根据具体需求和技术栈来选择最适合的方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值