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

JS實現(xiàn)Blob文件流下載

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

一、下載

在 JavaScript 中,可以使用瀏覽器提供的 Blob 對象和 URL.createObjectURL() 方法來實現(xiàn)文件流下載。
下面是一個示例代碼,可以幫助了解如何在 JavaScript 中實現(xiàn)文件流下載:

function downloadFile(data, filename, type) {
    // 創(chuàng)建 Blob 對象
    const blob = new Blob([data], { type: type });

    // 判斷當前瀏覽器是否是IE,由于IE是沒有download 方法的,需要用msSaveBlob() 或 msSaveOrOpenBlob()
    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
        // 兼容IE
        window.navigator.msSaveOrOpenBlob(blob, filename)
    } else {
        // 創(chuàng)建 URL 對象
        const url = URL.createObjectURL(blob);

        // 創(chuàng)建鏈接
        const link = document.createElement('a');
        link.href = url;
        link.download = filename;

        // 模擬點擊鏈接進行下載
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);

        // 釋放 URL 對象
        URL.revokeObjectURL(url);
    }
}

在這個示例中,我們定義了一個 downloadFile() 函數(shù),這個函數(shù)接受三個參數(shù):data、filenametype。其中,data 表示要下載的數(shù)據(jù)流,filename 表示要保存的文件名,type 表示要下載的文件類型。

在函數(shù)中,我們首先使用 Blob 對象創(chuàng)建一個二進制數(shù)據(jù)流,然后使用 URL.createObjectURL() 方法創(chuàng)建一個 URL 對象。接著,我們創(chuàng)建一個鏈接元素,并將這個鏈接元素的 href 屬性設(shè)置為 URL 對象的 URL,將 download 屬性設(shè)置為要保存的文件名。最后,我們模擬點擊鏈接元素,啟動下載操作。

當下載完成后,我們需要釋放 URL 對象,以便瀏覽器可以回收這個對象的內(nèi)存。這個操作可以使用 URL.revokeObjectURL()方法來實現(xiàn)。

注意:IE中要使用window.navigator.msSaveOrOpenBlobwindow.navigator.msSaveBlob來處理Blob對象
用法:

1.msSaveOrOpenBlob:提供保存和打開按鈕
2.msSaveBlob:只提供一個保存按鈕

二、請求

在使用axios請求的時候,加上responseType: 'blob'入?yún)ⅰU埱笫纠缦拢?/p>

axios({
  // 請求頭  
  headers: {
      Content-Type: 'application/json;charset=utf-8'  
  },
  responseType: 'blob', // // `responseType` 表示瀏覽器將要響應的數(shù)據(jù)類型,選項有'arraybuffer', 'document', 'json', 'text', 'stream',瀏覽器專屬:'blob',默認是'json'
  method: 'get', // 類型根據(jù)實際接口是get還是post
  url: '接口URL',
  params: {}, // URL參數(shù)
});

因為我們使用的是文件流下載,所以返回的響應對象就不是 json 類型,要換成 blob 類型.

三、示例

以下載excel為例:

axios({
  headers: {
    'Content-Type': 'application/json;charset=utf-8'
  },
  responseType: 'blob',
  method: 'get',
  url: '#',
  params: {}
}).then(res => {
  downloadFile(res, '文件名稱','application/xlsx')
})

實際根據(jù)請求的方法換成是get請求還是post請求,下載不同的文件對應不同的 Blob 類型,這邊excel文件下載用的是 application/xlsx,如果是下載別的類型的文件就換別的類型。
Blob相關(guān)的文檔可自行查看鏈接:
https://developer.mozilla.org/zh-CN/docs/Web/API/Blob/type文章來源地址http://www.zghlxwxcb.cn/news/detail-556433.html

到了這里,關(guān)于JS實現(xiàn)Blob文件流下載的文章就介紹完了。如果您還想了解更多內(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)查實,立即刪除!

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

相關(guān)文章

  • Javascript——vue下載blob文檔流

    Javascript——vue下載blob文檔流

    實現(xiàn)效果

    2024年02月02日
    瀏覽(30)
  • 【前端靈魂腳本語言JavaScript⑤】——JS中數(shù)組的使用

    【前端靈魂腳本語言JavaScript⑤】——JS中數(shù)組的使用

    ?? 作者: 阿偉 ?? 個人主頁: Flyme awei ?? 希望大家多多支持??一起進步呀! ?? 文章對你有幫助??關(guān)注?點贊??收藏?? 第一種: var 數(shù)組名 = new Array(); 創(chuàng)建一個空數(shù)組 第二種: var arr2 = new Array(10); 創(chuàng)建一個定長為10的數(shù)組 第三種 var arr3 = new Array(a,b,c); 創(chuàng)建時直接指定元素值

    2023年04月08日
    瀏覽(111)
  • 〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的「數(shù)組」

    〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的「數(shù)組」

    當前子專欄 基礎(chǔ)入門三大核心篇 是免費開放階段 。 推薦他人訂閱,可獲取扣除平臺費用后的35%收益,文末名片加V! 說明:該文屬于 大前端全棧架構(gòu)白寶書專欄, 目前階段免費開放 , 購買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:除了通過訂閱\\\"白寶書系列專

    2024年02月04日
    瀏覽(23)
  • JS前端讀取本地上傳的File文件對象內(nèi)容(包括Base64、text、JSON、Blob、ArrayBuffer等類型文件)

    FileReader.readAsArrayBuffer() - Web API 接口參考 | MDN FileReader 接口提供的 readAsArrayBuffer() 方法用于啟動讀取指定的 Blob 或 File 內(nèi)容。當讀取操作完成時,readyState 變成 DONE(已完成),并觸發(fā) loadend 事件,同時 result 屬性中將包含一個 ArrayBuffer 對象以表示所讀取文件的數(shù)據(jù)。 https://

    2024年02月15日
    瀏覽(58)
  • 【前端|Javascript第5篇】全網(wǎng)最詳細的JS的內(nèi)置對象文章!

    【前端|Javascript第5篇】全網(wǎng)最詳細的JS的內(nèi)置對象文章!

    前言 在當今數(shù)字時代,前端技術(shù)正日益成為塑造用戶體驗的關(guān)鍵。我們在開發(fā)中需要用到很多js的內(nèi)置對象的一些屬性來幫助我們更快速的進行開發(fā)。或許你是剛踏入前端領(lǐng)域的小白,或者是希望深入了解內(nèi)置對象的開發(fā)者,不論你的經(jīng)驗如何,本篇博客都將給你詳細的講解

    2024年02月12日
    瀏覽(57)
  • [前端系列第3彈]JS入門教程:從零開始學習JavaScript

    本文將帶領(lǐng)大家,從零開始學習JavaScript,fighting~ 目錄 一、JavaScript簡介 二、變量和數(shù)據(jù)類型 三、注釋和分號 四、算術(shù)運算符 五、表達式和語句 六、代碼塊和作用域 七、函數(shù)(最重要)? ????????JavaScript(簡稱JS)是一種運行在瀏覽器中的腳本語言,它可以讓網(wǎng)頁變得

    2024年02月13日
    瀏覽(95)
  • 〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的DOM簡介

    〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的DOM簡介

    說明:該文屬于 大前端全棧架構(gòu)白寶書專欄, 目前階段免費 , 如需要項目實戰(zhàn)或者是體系化資源,文末名片加V! 作者:不渴望力量的哈士奇(哈哥),十余年工作經(jīng)驗, 從事過全棧研發(fā)、產(chǎn)品經(jīng)理等工作,目前在公司擔任研發(fā)部門CTO。 榮譽: 2022年度博客之星Top4、2023年度超

    2024年02月04日
    瀏覽(25)
  • 使用javascript-obfuscator給js文件加密

    使用javascript-obfuscator給js文件加密

    注意:其中selfDefending設(shè)置為true時比較消耗系統(tǒng)性能,我設(shè)置為true時微信開發(fā)者工具直接白屏。 出現(xiàn)如下圖藍色字體即成功: 因為被混淆的代碼文件是不可讀的,所以需要自己備份原文件,以便后續(xù)維護修改。 ?? 原創(chuàng)不易,還希望各位大佬支持一下 textcolor{blue}{原創(chuàng)不易

    2024年02月07日
    瀏覽(24)
  • 〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的數(shù)組的常用方法 (一)

    〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的數(shù)組的常用方法 (一)

    當前子專欄 基礎(chǔ)入門三大核心篇 是免費開放階段 。 推薦他人訂閱,可獲取扣除平臺費用后的35%收益,文末名片加V! 說明:該文屬于 大前端全棧架構(gòu)白寶書專欄, 目前階段免費開放 , 購買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:除了通過訂閱\\\"白寶書系列專

    2024年02月07日
    瀏覽(22)
  • 前端實現(xiàn)文件下載的方法;以及后端返回 blob 文件流,進行展示。

    前端下載一般分為兩種情況,一種是后端直接給一個文件地址,通過瀏覽器打開就可以下載,另外一種則需要發(fā)送請求,后端返回二進制流數(shù)據(jù),前端解析流數(shù)據(jù),生成URL,實現(xiàn)下載。 通過a標簽的download屬性來實現(xiàn)文件下載,這種方式是最簡單的,也是比較常用的方式,先來

    2024年02月06日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包