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

返回流文件前端處理方法(全)

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

接口返回二進制文件流前端處理方法

前后端分離項目中,為保證數(shù)據(jù)安全性,文件數(shù)據(jù)通常使用接口調(diào)用方式獲取,后端返回二進制文件流后前端該如何處理。

流數(shù)據(jù)轉(zhuǎn)鏈接
獲取到的流文件數(shù)據(jù)(注意:接口調(diào)用時需設(shè)置responseType:blob)使用Blob構(gòu)造函數(shù)(將二進制數(shù)據(jù)存儲為一個單一個體的集合)進行轉(zhuǎn)換,它接受兩個參數(shù)。第一個參數(shù)是數(shù)組,成員是字符串或二進制對象,表示新生成的Blob實例對象的內(nèi)容;第二個參數(shù)是可選的,是一個配置對象。然后通過URL.createObjectURL()方法會根據(jù)傳入的參數(shù)創(chuàng)建一個指向該參數(shù)對象的URL.最后返回一個以blob://xxx的瀏覽器臨時路徑地址

	//(例)將pdf流文件數(shù)據(jù)轉(zhuǎn)為臨時鏈接地址
	let blob = new Blob([res.data],{type:'application/pdf'}
	const url = URL.createObjectURL(blob)

對于不同類型文件轉(zhuǎn)換通過改變type的值實現(xiàn)

文件類型分類

常見文件場景有圖片、視頻、音頻、word、excel、pdf這些類別

文件類型(擴展名) type類型
.jpeg .jpg image/jpeg
.mp3 audio/mpeg
.pdf application/pdf
.xls application/vnd.ms-excel
.doc application/msword
.pdf application/pdf
.mpeg .mp4 video/mpeg

非流文件處理
正常情況下會返回流文件前端進行轉(zhuǎn)換,在錯誤情況下返回報錯(json)信息時,這時我們不需要下載文件而是給出錯誤信息.
接口返回的報錯信息是json格式,由于請求設(shè)置了responseType:‘blob’,所以會轉(zhuǎn)化為Blob類型.
這時需要使用FileReader讀取文件,具體邏輯代碼如下文章來源地址http://www.zghlxwxcb.cn/news/detail-702677.html

//downAllTask為封裝的接口方法,params為請求參數(shù)
downAllTask(params).then((res) => {
	//實例讀取文件對象
    const r = new FileReader();
    r.onload = function () {
    try {
    	// this.result為FileReader獲取blob數(shù)據(jù),如果返回報錯信息,則是正確的json數(shù)據(jù),JSON.parse會正常轉(zhuǎn)換
    	//如果返回文件流,則JSON.parse時會報錯,走catch代碼塊(進行正常的文件下載)   	
        const resData = JSON.parse(this.result); 
        //resData是后端返回的json數(shù)據(jù)
        if (resData.errorcode===500) {
           proxy.$message.warning(resData.msg)
           return
        }
     }catch (error) {
         let blob = new Blob([res], { type: "application/zip" });
         let url = window.URL.createObjectURL(blob);
         const link = document.createElement("a"); 
         link.href = url;
         link.download = "下載圖片"; 
         link.click();
         URL.revokeObjectURL(url);
      }
    }
    r.readAsText(res)
}).catch((e)=>{
})

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

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

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

相關(guān)文章

  • 后端返回文件流,前端怎么導(dǎo)出、下載(8種方法可實現(xiàn))

    在前端導(dǎo)出和下載后端返回的文件流時,可以使用以下幾種方法: 使用 window.open() 方法: 在前端使用 window.open() 方法打開一個新的窗口或標簽頁,并將后端返回的文件流作為URL傳遞給該方法。瀏覽器會自動下載該文件。 例如: window.open(\\\'http://example.com/download\\\', \\\'_blank\\\'); 使用

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

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

    2024年02月06日
    瀏覽(27)
  • 后端返回二進制流,前端處理二進制文件流,實現(xiàn)預(yù)覽圖片以及PDF

    后端返回二進制流,前端處理二進制文件流,實現(xiàn)預(yù)覽圖片以及PDF

    1、首先預(yù)覽PDF需要 后端 將響應(yīng)頭 Content-Type 設(shè)置為PDF類型 application/pdf ,不能預(yù)覽,會直接下載 2、 前端 定義接口:并設(shè)置相應(yīng)類型 responseType 為 blob 請求數(shù)據(jù):通過 window.URL.createObjectURL(res) 轉(zhuǎn)成本地預(yù)覽地址, 在通過 window.open() 方法打開轉(zhuǎn)成本地預(yù)覽地址即可預(yù)覽PDF,如下

    2024年02月15日
    瀏覽(38)
  • 返回流文件前端處理方法(全)

    前后端分離項目中,為保證數(shù)據(jù)安全性,文件數(shù)據(jù)通常使用接口調(diào)用方式獲取,后端返回二進制文件流后前端該如何處理。 流數(shù)據(jù)轉(zhuǎn)鏈接 獲取到的流文件數(shù)據(jù)( 注意:接口調(diào)用時需設(shè)置responseType:blob )使用Blob構(gòu)造函數(shù)(將二進制數(shù)據(jù)存儲為一個單一個體的集合)進行轉(zhuǎn)換,它接受兩

    2024年02月09日
    瀏覽(10)
  • 純前端 導(dǎo)出Excel文件(包括導(dǎo)出用數(shù)組數(shù)據(jù)模擬文件數(shù)據(jù)和實際后端返回的文件數(shù)據(jù))的 方法

    ????????在純前端導(dǎo)出文件的一種常見方法是通過生成下載鏈接來實現(xiàn),可以使用Blob對象和URL.createObjectURL()方法來實現(xiàn),因為現(xiàn)在工作中主要運用的前端框架是Angular,這篇文章將以angular為例進行闡述。 一、示例代碼 1. 首先,安裝FileSaver庫(https://github.com/eligrey/FileSaver.j

    2024年04月23日
    瀏覽(26)
  • 為什么SQL日志文件很大,該如何處理?

    為什么SQL日志文件很大,該如何處理?

    SQL Server 日志文件是記錄所有數(shù)據(jù)庫事務(wù)和修改的事務(wù)日志文件。用 SQL 術(shù)語來說,此日志文件記錄對數(shù)據(jù)庫執(zhí)行的所有 INSERT 、 UPDATE 和 DELETE查詢操作。 如果數(shù)據(jù)庫聯(lián)機或恢復(fù)時日志已滿,SQL Server 通常會發(fā)出 9002 錯誤。在這種情況下,數(shù)據(jù)庫只能讀取而不能更新。此篇文章

    2024年02月06日
    瀏覽(35)
  • 【JavaScript】后端返回的二進制流音頻數(shù)據(jù)或本地音頻資源,前端如何播放?

    如果我們要使用本地的音頻資源,在 vue3 中那么我們需要對資源的地址做一下處理 后端返回二進制流音頻數(shù)據(jù),怎么讓其可播放 前端播放二進制語音流

    2024年02月03日
    瀏覽(33)
  • 后端返回parentId,前端處理成children嵌套數(shù)據(jù)

    rouyi 的 vuetree函數(shù)結(jié)合elementui? el-table組件使用 把有parentId和id結(jié)構(gòu)的數(shù)據(jù)處理成children嵌套數(shù)據(jù),字段名稱不一致,可以設(shè)置。 vuetree函數(shù) : ?

    2024年02月09日
    瀏覽(18)
  • 【Vue】后端返回文件流,前端預(yù)覽文件

    【Vue】后端返回文件流,前端預(yù)覽文件

    ? 文件預(yù)覽效果

    2024年01月17日
    瀏覽(92)
  • 后端一次返回大量數(shù)據(jù),前端做分頁處理

    后端一次返回大量數(shù)據(jù),前端做分頁處理

    問題描述:后端接口返回大量數(shù)據(jù),沒有做分頁處理,不支持傳參pageNum,pageSize 本文為轉(zhuǎn)載文章,原文章:后端一次返回大量數(shù)據(jù),前端做分頁處理 1.template中 分頁 對應(yīng)的模型 2.script中 獲取后端數(shù)據(jù) 改變頁數(shù)事件 改變條數(shù)事件

    2024年02月15日
    瀏覽(108)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包