国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端下載文化部幾種方法(excel,zip,html,markdown、圖片等等)和導出 zip 壓縮包

這篇具有很好參考價值的文章主要介紹了前端下載文化部幾種方法(excel,zip,html,markdown、圖片等等)和導出 zip 壓縮包。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前端下載文化部幾種方法(excel,zip,html,markdown、圖片等等)和導出 zip 壓縮包,前端,excel,html

1、location.href

//get請求
window.location.href = url;

2、location.href

//get請求和location.href類似
window.open(url);

3、a標簽

//寫法1
const download = (filename, url) => {
    let a = document.createElement('a'); 
    a.style = 'display: none'; // 創(chuàng)建一個隱藏的a標簽
    a.download = filename;
    a.href = url;
    document.body.appendChild(a);
    a.click(); // 觸發(fā)a標簽的click事件
    document.body.removeChild(a);
}

4、請求后端的方式

axios({
  method: 'post',
  headers: {
    'Content-Type': 'application/json; charset=utf-8'
  },
  url: '/robot/strategyManagement/analysisExcel',
  responseType: 'blob',
  headers: { //如果需要權(quán)限下載的話,加在這里
        Authorization: '123456'
    }
  data: JSON.stringify(params),
}).then(function(res){
   var content = res.headers['content-disposition'];
   var name = content && content.split(';')[1].split('filename=')[1];
   var fileName = decodeURIComponent(name)
   downloadFile(res.data,fileName)
})

5、文件下載的方式

downloadFile:function(data,fileName){
    // data為blob格式
    var blob = new Blob([data]);
    var downloadElement = document.createElement('a');
    var href = window.URL.createObjectURL(blob);
    downloadElement.href = href;
    downloadElement.download = fileName;
    document.body.appendChild(downloadElement);
    downloadElement.click();
    document.body.removeChild(downloadElement);
    window.URL.revokeObjectURL(href);
}

6、Blob和Base64

function downloadFile(res, Filename) {
  // res為接口返回數(shù)據(jù),在請求接口的時候可進行鑒權(quán)
  if (!res) return;
  // IE及IE內(nèi)核瀏覽器
  if ("msSaveOrOpenBlob" in navigator) {
    navigator.msSaveOrOpenBlob(res, name);
    return;
  }
  const url = URL.createObjectURL(new Blob([res]));
  //  const fileReader = new FileReader();  使用 Base64 編碼生成
  // fileReader.readAsDataURL(res);
  // fileReader.onload = function() { ...此處邏輯和下面創(chuàng)建a標簽并釋放代碼一致,可從fileReader.result獲取href值... }
  const a = document.createElement("a");
  a.style.display = "none";
  a.href = url;
  a.download = Filename;
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
  URL.revokeObjectURL(url); // 釋放blob對象
}

7、下載附件方法(excel,zip,html,markdown)

/**
 * @param data 數(shù)據(jù)
 * @param fileName 文件名稱
 * @param type 導出文件類型
 */
export const download = (data: Blob, fileName: string, type: string) => {
  // 創(chuàng)建 blob
  const blob = new Blob([data], { type: mineType[type] })
  // 創(chuàng)建 href 超鏈接,點擊進行下載
  window.URL = window.URL || window.webkitURL
  const href = URL.createObjectURL(blob)
  const downA = document.createElement('a')
  downA.href = href
  downA.download = fileName
  downA.click()
  // 銷毀超連接
  window.URL.revokeObjectURL(href)
}

export const mineType = {
  excel: 'application/vnd.ms-excel', // 下載 Excel
  word: 'application/msword', // 下載 Word
  zip: 'application/zip', // 下載 Zip
  html: 'text/html', // 下載 Html
  markdown: 'text/markdown', // 下載 Markdown
}

使用

download(res, '導出模板.docx', 'word')

8、封裝下載函數(shù)

export const download = (res, type, filename) => {
  // 創(chuàng)建blob對象,解析流數(shù)據(jù)
  const blob = new Blob([res], {
    // 設置返回的文件類型
    // type: 'application/pdf;charset=UTF-8' 表示下載文檔為pdf,如果是word則設置為msword,excel為excel
    type: type
  })
  // 這里就是創(chuàng)建一個a標簽,等下用來模擬點擊事件
  const a = document.createElement('a')
  // 兼容webkix瀏覽器,處理webkit瀏覽器中href自動添加blob前綴,默認在瀏覽器打開而不是下載
  const URL = window.URL || window.webkitURL
  // 根據(jù)解析后的blob對象創(chuàng)建URL 對象
  const herf = URL.createObjectURL(blob)
  // 下載鏈接
  a.href = herf
  // 下載文件名,如果后端沒有返回,可以自己寫a.download = '文件.pdf'
  a.download = filename
  document.body.appendChild(a)
  // 點擊a標簽,進行下載 
  a.click()
  // 收尾工作,在內(nèi)存中移除URL 對象
  document.body.removeChild(a)
  window.URL.revokeObjectURL(herf)
}

9、導出 zip 壓縮包相關(guān)方法(流方式)

后端的設置 Content-Type: application/octet-stream(下載用的流)

 // 下載zip方法
    //zip格式文件下載
    zipdwonUpload(data) {
      console.log("干部任免表傳遞的數(shù)據(jù)", data);
      let ids = data.ids;
      console.log("ids集合數(shù)據(jù)", ids);
      // 導出干部任免表接口
      this.$axios
        .post(`personnel/exportAppointmentAndDismissal`, ids, {
          responseType: "blob",
        })
        .then((res) => {
          // res
          let blob = res;
          let that = this;
          //通過FileReader讀取數(shù)據(jù),是一種異步文件讀取機制
          let reader = new FileReader();
          //以下這兩種方式我都可以解析出來,因為Blob對象的數(shù)據(jù)可以按文本或二進制的格式進行讀取
          // reader.readAsBinaryString(blob, 'utf8');
          reader.readAsText(blob, "utf8");
          // eadAsText(file, encoding);以純文本的方式讀取,讀取到的文本保存在result屬性中。第二個參數(shù)代表編碼格式

          reader.onload = function (result) {
            //onload在成功加載后就會觸發(fā)
            console.log("result信息", result);
            console.log(
              "isJson判斷是否為json格式",
              that.isJSON(result.target.result)
            );
            if (that.isJSON(result.target.result)) {
              that.$message.warning(JSON.parse(result.target.result).msg);
              // loading效果
              // that.loadingBut = false;
            } else {
              console.log("下載zip數(shù)據(jù)", res);
              // that.downloadFile(res);
            }
          };
        })
        .catch((error) => {
          console.log(error);
          // 打印錯誤
        })
        .finally(() => {
          // 導出按鈕loading效果
          this.isDownloadingFile = false;
        });
    },

使用導出 zip

    // 導出zip
    downloadFile(res) {
      // res 下載轉(zhuǎn)blob二進制或文本數(shù)據(jù)
      let blob = new Blob([res], { type: "application/zip" });
      console.log("導出的blob", blob);
      if (window.navigator.msSaveOrOpenBlob) {
        // msSaveOrOpenBlob 提供保存和打開按鈕
        navigator.msSaveOrOpenBlob(blob, "xxx.zip");
        // navigator.msSaveOrOpenBlob(blob, "xxx.zip");
        return;
      }
      let url = window.URL.createObjectURL(blob);
      const link = document.createElement("a"); // 創(chuàng)建a標簽
      link.href = url;
      link.download = `干部任免壓縮包`; // 重命名文件
      link.click();
      URL.revokeObjectURL(url); // 釋放內(nèi)存
      // this.loadingBut = false; //loading效果
    },

總結(jié)

如果這篇【文章】有幫助到你??,希望可以給我點個贊??,創(chuàng)作不易,如果有對前端或者對python感興趣的朋友,請多多關(guān)注??????,咱們一起探討和努力!?。?br> ????? 個人主頁 : 前端初見文章來源地址http://www.zghlxwxcb.cn/news/detail-630235.html

到了這里,關(guān)于前端下載文化部幾種方法(excel,zip,html,markdown、圖片等等)和導出 zip 壓縮包的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 前端下載文件的幾種方式使用Blob下載文件

    前端下載文件的幾種方式使用Blob下載文件

    前端下載文件的幾種方式 使用Blob下載文件 在前端下載文件是個很通用的需求,一般后端會提供下載的方式有兩種: 1.直接返回文件的 網(wǎng)絡地址 (一般用在靜態(tài)文件上,比如圖片以及各種音視頻資源等) 2.返回 文件流 (一般用在動態(tài)文件上,比如根據(jù)前端選擇,導出不同的

    2024年02月05日
    瀏覽(23)
  • android gradle-8.0-bin-zip下載失敗、下載很慢的解決方法

    android gradle-8.0-bin-zip下載失敗、下載很慢的解決方法

    如果你的studio下載gradle很慢或下載失敗,你可以去 gradle官網(wǎng) 自己下載,然后按照下面的方法導入即可。 創(chuàng)建一個項目后,先看Settings里的gradle本地存放路徑。默認是在C盤自動創(chuàng)建一個“.gradle”的文件夾,可以改到其他盤,但不建議,可能會導致AS下載文件失敗或奇怪的問題

    2024年02月04日
    瀏覽(17)
  • 前端下載文件(Blob)的幾種方式使用Blob下載文件

    在前端下載文件是個很通用的需求,一般后端會提供下載的方式有兩種: 1.直接返回文件的網(wǎng)絡地址(一般用在靜態(tài)文件上,比如圖片以及各種音視頻資源等) 2.返回文件流(一般用在動態(tài)文件上,比如根據(jù)前端選擇,導出不同的統(tǒng)計結(jié)果 excel 等) 第一種方式比較簡單,但

    2024年02月07日
    瀏覽(21)
  • 記錄--盤點前端實現(xiàn)文件下載的幾種方式

    記錄--盤點前端實現(xiàn)文件下載的幾種方式

    前端涉及到的文件下載還是很多應用場景的,那么前端文件下載有多少種方式呢?每種方式有什么優(yōu)缺點呢?下面就來一一介紹。 通過 a 標簽的 download 屬性來實現(xiàn)文件下載,這種方式是最簡單的,也是我們比較常用的方式,先來看示例代碼: 就上面的這個示例,我們點擊下

    2024年02月13日
    瀏覽(26)
  • vue實現(xiàn)excel數(shù)據(jù)下載,后端提供的list由前端轉(zhuǎn)excel并下載

    vue實現(xiàn)excel數(shù)據(jù)下載,后端提供的list由前端轉(zhuǎn)excel并下載

    前言,因為項目需求需要,我們需要把后端傳來的list轉(zhuǎn)成excel模板,并且下載下來) 之前有用的插件,但是會有少0的情況,如下 ?所以采用另一個項目用過的方法,最終完美實現(xiàn)效果,如下: ?1,首先我們來看下后端提供的數(shù)據(jù)結(jié)構(gòu) 2,具體前端代碼如下 封裝的組件,需要的同學直接copy就行

    2024年02月16日
    瀏覽(26)
  • 后端:使用easyExcel實現(xiàn)解析Excel文件讀取數(shù)據(jù)。前端:Excel模板下載、前端上傳文件

    后端:使用easyExcel實現(xiàn)解析Excel文件讀取數(shù)據(jù)。前端:Excel模板下載、前端上傳文件

    ????????本篇是EasyExcel快速入門知識,講解如何讀取Excel文件,對Excel中錯誤信息如空字符、必填項為空、表格格式校驗做到處理?,并給出了實際項目中示例代碼;為什么要使用easyexcel;原因是相比于poi,easyexcel更加輕量級,讀取寫入API方便,并且在工作中占用內(nèi)存較??;

    2024年02月05日
    瀏覽(37)
  • 前端幾種下載文件的方式(url方式和文件流方式)

    前端實現(xiàn)下載功能是依賴于瀏覽器特性,而非JS特性 前端如何實現(xiàn)文件下載,防止瀏覽器自動打開可預覽文件 https://blog.csdn.net/weixin_46074961/article/details/105677732 1.location.href 下載文件–window-location-href 對于瀏覽器不能打開的文件(例如:.rar .doc等)是可以實現(xiàn)文件下載的,但是對于瀏

    2024年02月06日
    瀏覽(22)
  • Arduino串口數(shù)據(jù)保存到excel中的幾種方法

    Arduino串口數(shù)據(jù)保存到excel中的幾種方法

    參見:如何利用python傳輸串口數(shù)據(jù)到excel? [http://www.kaotop.com/it/23641.html] 優(yōu)點:可以自己設置代碼格式等 不足:太麻煩,不夠快捷 淘寶幾十塊錢買一個,很好用的串口助手,還可以數(shù)據(jù)可視化。 不足:需要手動保存窗口內(nèi)的串口內(nèi)容。 這是微軟自帶的一個excel加載項 參見:什

    2024年01月17日
    瀏覽(29)
  • #vue3 實現(xiàn)前端下載excel文件模板功能

    #vue3 實現(xiàn)前端下載excel文件模板功能

    一、需求: 前端無需通過后端接口,即可實現(xiàn)模板下載功能。 通過構(gòu)造一個 JSON 對象,使用前端常用的 第三方庫 xlsx ,可以直接將該 JSON 對象轉(zhuǎn)換成 Excel 文件,讓用戶下載模板 二、效果: 三、源碼如下:

    2024年01月19日
    瀏覽(124)
  • vue純前端實現(xiàn)下載excel文件,本地和測試環(huán)境都可正常下載

    vue純前端實現(xiàn)下載excel文件,本地和測試環(huán)境都可正常下載

    vue2純前端實現(xiàn)下載excel文件,本地和測試環(huán)境都可正常下載。 1、把后端給的excel文件放到本地項目文件夾中,位置如圖所示: 2、在需要展示下載功能的頁面中引入該excel文件,如圖所示: 3、使用a鏈接,href綁定引入的excel文件路徑,并添加download屬性,download屬性值就是下載

    2024年02月13日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包