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

vue:文件下載

這篇具有很好參考價值的文章主要介紹了vue:文件下載。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.下載方法是通過創(chuàng)建 Blob 對象,并使用 URL.createObjectURL 來生成下載鏈接,最終通過創(chuàng)建 <a> 元素并觸發(fā)點擊實現(xiàn)文件下載。

獲取到 HTTP 響應(yīng)后,以下是對每一行代碼的解釋:

  1. if (res.status === 200) {: 這一行代碼檢查 HTTP 響應(yīng)的狀態(tài)是否為 200,表示請求成功。只有在成功的情況下才會執(zhí)行后續(xù)的文件下載操作。

  2. const blob = new Blob([res.data]);: 使用響應(yīng)中的數(shù)據(jù)創(chuàng)建一個 Blob 對象。Blob 是二進(jìn)制大對象,用于表示二進(jìn)制數(shù)據(jù)。

  3. const downloadElement = document.createElement('a');: 創(chuàng)建一個 <a> 元素,用于設(shè)置下載鏈接。

  4. const href = window.URL.createObjectURL(blob);: 使用 URL.createObjectURL 創(chuàng)建一個包含 Blob 對象的 URL。這個 URL 將在后續(xù)用于文件下載。

  5. downloadElement.href = href;: 將剛才創(chuàng)建的 URL 設(shè)置為 <a> 元素的 href 屬性,以便關(guān)聯(lián)下載鏈接。

  6. downloadElement.download = item.fileName;: 設(shè)置下載時的文件名。item.fileName 是文件的名稱,會在下載時使用。

  7. document.body.appendChild(downloadElement);: 將 <a> 元素添加到文檔的 body 中。這是為了觸發(fā)下載,因為瀏覽器需要在文檔中存在的元素上進(jìn)行點擊事件。

  8. downloadElement.click();: 模擬點擊 <a> 元素,觸發(fā)文件下載。

  9. document.body.removeChild(downloadElement);: 文件下載完成后,將 <a> 元素從文檔中移除。這一步是為了清理文檔結(jié)構(gòu),避免對頁面產(chǎn)生影響。

  10. window.URL.revokeObjectURL(href);: 釋放之前創(chuàng)建的 Blob 對象的 URL。這是為了釋放瀏覽器資源,防止內(nèi)存泄漏。

這一系列操作實現(xiàn)了通過瀏覽器觸發(fā)文件下載的過程。要注意,這種方式適用于現(xiàn)代瀏覽器,但在一些舊版本的瀏覽器中可能存在兼容性問題。文章來源地址http://www.zghlxwxcb.cn/news/detail-801799.html

 downloadFile(item) {
      const headers = {
        Authorization: `Bearer ${getToken()}`,
      };

      Axios({
        method: 'GET',
        url: `${webAPI.services.landmis}file/download`,
        params: { id: item.id },
        responseType: 'blob',
        headers,
      }).then((res) => {
        // 請求成功后處理流
        if (res.status === 200) {
          const blob = new Blob([res.data]);
          const downloadElement = document.createElement('a');
          const href = window.URL.createObjectURL(blob); // 創(chuàng)建下載的鏈接
          downloadElement.href = href;
          downloadElement.download = item.fileName; // 下載后文件名
          document.body.appendChild(downloadElement);
          downloadElement.click(); // 點擊下載
          document.body.removeChild(downloadElement); // 下載完成移除元素
          window.URL.revokeObjectURL(href); // 釋放掉blob對象
        }
      });
    },

到了這里,關(guān)于vue:文件下載的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • StreamSaver.js入門教程:優(yōu)雅解決前端下載文件的難題

    StreamSaver.js入門教程:優(yōu)雅解決前端下載文件的難題

    點贊 + 關(guān)注 + 收藏 = 學(xué)會了 本文介紹一個能讓前端優(yōu)雅下載大文件的工具:StreamSaver.js ?? StreamSaver.js GitHub地址 ?? 官方案例 StreamSaver.js 可用于實現(xiàn)在Web瀏覽器中直接將大文件流式傳輸?shù)接脩粼O(shè)備的功能。 傳統(tǒng)的下載方式可能導(dǎo)致大文件的加載時間較長或造成內(nèi)存占用過

    2024年02月08日
    瀏覽(43)
  • 【Java 實現(xiàn)文件下載】vue前端+java后端實現(xiàn)文件下載詳解(附源碼)

    【Java 實現(xiàn)文件下載】vue前端+java后端實現(xiàn)文件下載詳解(附源碼)

    【 寫在前面 】前端時間總結(jié)了一下有關(guān)java文件上傳的功能,也給不少讀者帶來一些幫助,因此今天繼續(xù)完善文件下載這套體系,希望能給屏幕前的您帶來實質(zhì)性的幫助,其實文件下載最怕的就是中文亂碼的現(xiàn)象,當(dāng)然這個我單獨寫了一篇文章解釋,這里不做詳談。 涉及知識

    2024年02月09日
    瀏覽(106)
  • vue 前端自動打開文件地址進(jìn)行下載

    最近在做異步導(dǎo)出的功能,導(dǎo)出的過程中前端另外啟動一個查詢導(dǎo)出進(jìn)度的線程接口。如果導(dǎo)出完成后,把生成的文件上傳到服務(wù)器,返回給前端一個文件的下載地址; 前端自動打開這個地址進(jìn)行跳轉(zhuǎn)下載。 有兩種方式 這種方式有一個問題,會被瀏覽器自動攔截彈出的窗口

    2024年02月04日
    瀏覽(25)
  • vue前端下載阿里oss超大文件的問題

    vue前端下載阿里oss超大文件的問題

    最近在開發(fā)一個大文件壓縮下載需求,由于附件都是從阿里oss上下載,且一次下載多個文件,然后進(jìn)行打包壓縮,前期使用了axios+jszip+file-saver 來進(jìn)行處理,但是當(dāng)文件超過3個G的時候會出現(xiàn)out of memory和RangeError: Array buffer allocation failed錯誤。 下面貼出代碼: ? 使用常用的 a

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

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

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

    2024年01月19日
    瀏覽(127)
  • 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日
    瀏覽(98)
  • vue 純前端預(yù)覽pdf,純前端實現(xiàn)pdf加水印下載文件也帶水印,防止pdf下載

    vue 純前端預(yù)覽pdf,純前端實現(xiàn)pdf加水印下載文件也帶水印,防止pdf下載

    ? 原理:主要是利用pdfh5這個插件來完成的 ? 使用方法: ? 1.頁面需要有一個容器例子:div id=\\\"demo\\\"/div ? 2.下載pdfh5插件 npm install pdfh5 ? (注意:webpack5之后不會下載polyfill 需要手動下載 所以引入pdfh5的時候會報錯) ? 解決方案:下載 node-polyfill-webpack-plugin npm install node-polyfill-

    2024年04月15日
    瀏覽(129)
  • vue下載pdf文件純前端實現(xiàn),不跳頁面實現(xiàn)

    vue下載pdf文件純前端實現(xiàn),不跳頁面實現(xiàn)

    一、引入download.js npm install downloadjs 地址:https://www.npmjs.com/package/downloadjs 注意:使用download.js時下載的文件內(nèi)容為該文件的url(url和filename參數(shù)有中文的話下載后的文件會損壞打不開,需要修改源碼) 二、復(fù)制一份下載好的downloadjs 文件 , 修改后的源碼

    2024年02月12日
    瀏覽(99)
  • vue-cli4前端實現(xiàn)下載本地Excel模板,以及下載靜態(tài)文件的坑

    vue-cli4前端實現(xiàn)下載本地Excel模板,以及下載靜態(tài)文件的坑

    a標(biāo)簽的下載功能: 1:bobl ----二進(jìn)制流文件 Blob對象標(biāo)識一個不可變、原始數(shù)據(jù)的類文件對象。Blob表示的不一定是JavaScript原生格式的數(shù)據(jù) 2:responseType responseType它表示服務(wù)器響應(yīng)的數(shù)據(jù)類型,由于后臺返回來的是二進(jìn)制數(shù)據(jù),所以要把它設(shè)為‘blob’ 通過設(shè)置responseType為blo

    2024年02月02日
    瀏覽(123)
  • Vue實戰(zhàn)【后端返回文件流時,前端如何處理并成功下載流文件】

    Vue實戰(zhàn)【后端返回文件流時,前端如何處理并成功下載流文件】

    哈嘍小伙伴們,在我們?nèi)粘9ぷ鳟?dāng)中,大家一定會遇到 文件導(dǎo)出 這樣的功能需求點;導(dǎo)出功能前端后端都可以實現(xiàn),通常情況下呢是由我們后端同事去處理的,那么當(dāng)我們后端同事給你返回文件流的時候,前端要怎么處理并且完成下載呢?今天就給大家說個簡單的方法,我

    2024年02月11日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包