zoukankan      html  css  js  c++  java
  • 文件下载功能

    1.文件下载功能  主要就是  

    一般来说前端实现的思路就是通过动态创建a标签,设置其download属性,最后删除a就好了,对于不是图片的文件一般都可以下载,但是如果是图片,有些浏览器会自动打开图片,所以我们需要手动把它转化为data:URLs或blob:URLs,基于这个原理,我们可以用fileReader,也可以用fetch-URL.createObjectURL,这里经过大量测试我采用后

    <a href="/static/xxxxx.csv" download="fileName">绝对路径写法
    2.配合后端来写
    原理简单就是后端返回 url download写上文件名 filename 直接a标签下载就行了
    function download(url, filename) {
        return fetch(url).then(res => res.blob().then(blob => {
            //创建a标签
            let a = document.createElement('a');
            //处理后端url
            let url = window.URL.createObjectURL(blob);
            //给a标签赋值
            a.href = url;
            a.download = filename;
            a.click();    
            // 释放blob对象
            window.URL.revokeObjectURL(url);
        }))
    }
        自己写的代码,页面写一个点击事件,拿到相对应的值就可以了
    //html页面
       <template slot-scope="datarow">
                <el-button type="text" @click="downloadExcel(datarow.row.url,datarow.row.fileName)">下载</el-button>
              </template>
     
     // 下载文件
        downloadExcel(url, fileName) {
          // console.log(url,fileName,)
          let param = {
            fileName: fileName
          };
          apiDownLoad(url, param).then(res => {
            var blob = new Blob([res], { type: "application/octet-stream" });
            if (window.navigator.msSaveOrOpenBlob) {
              //msSaveOrOpenBlob方法返回bool值
              navigator.msSaveBlob(blob, fileName); //本地保存
            } else {
              var link = document.createElement("a"); //a标签下载
              link.href = window.URL.createObjectURL(blob);
              link.download = fileName;
              link.click();
              window.URL.revokeObjectURL(link.href);
            }
          });
        },
     
     
     
     


  • 相关阅读:
    星浩资本-以流程为中心
    BPM配置故事之案例13-触发消息通知
    BPM配置故事之案例12-触发另外流程
    【从零开始学BPM,Day5】报表配置及自定义功能页面开发
    BPM配置故事之案例11-操作外部数据源
    BPM配置故事之案例10-获取外部数据
    [转]页游开发中的 Python 组件与模式Presentation Transcript
    Creating a Game with CocosBuilder
    As3 Practises : use TheMiner do as3 project swf performance profile , find memory leak!
    Manual Install Cocos2d-x vc template on Windows 7
  • 原文地址:https://www.cnblogs.com/maibao666/p/13690060.html
Copyright © 2011-2022 走看看