Vue+Js導出文件並重命名


 

基於上一篇文章  純js實現文件下載並重命名功能   實現Vue封裝

 

廢話少說直接來干的

 

新建util.js文件

     /*
     *@method 獲取文檔流
     *@param {Object} url 下載地址
     */
    getBlob(url, cb) {
        var xhr = new XMLHttpRequest();
        xhr.open('GET', url, true);
        xhr.responseType = 'blob';
        xhr.onload = function () {
            if (xhr.status === 200) {
                cb(xhr.response);
            }
        };
        xhr.send();
    },
    /*
     *@method 保存到本地方法 
     *@param {Object} blob 文檔流  filename  文件的名稱
     */
    saveAs(blob, filename) {
        if (window.navigator.msSaveOrOpenBlob) {
            navigator.msSaveBlob(blob, filename);
        } else {
            var link = document.createElement('a');
            var body = document.querySelector('body');

            link.href = window.URL.createObjectURL(blob);
            link.download = filename;

            // fix Firefox
            link.style.display = 'none';
            body.appendChild(link);

            link.click();
            body.removeChild(link);

            window.URL.revokeObjectURL(link.href);
        };
    }

 

 

頁面中使用

 

import util from "util.js"; // 引入js方法

     /*
     *@method 獲取下載地址
     */
    getUrl(item) {
      // 處理item  返回Url
      let URL = "xxxxxxx";
      return URL;
    },

    /*
     *@method 頁面觸發下載事件
     */
    handleDownload(item) {
      let URL = this.getUrl(item);
      this.handleSave(URL, item.name);
    },
    /*
     *@method 調用保存js
     *@param {Object} url 下載地址 filename 下載的文件名稱
     */
    handleSave(url, filename) {
      util.getBlob(url, function (blob) {
        util.saveAs(blob, filename);
    });
 }
 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM