欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue如何獲取圖片流數(shù)據(jù)并展示

 更新時(shí)間:2023年09月26日 10:55:35   作者:程序員的脫發(fā)之路  
這篇文章主要介紹了vue如何獲取圖片流數(shù)據(jù)并展示問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、問(wèn)題描述

該場(chǎng)景適用于所有后端傳遞圖片流數(shù)據(jù)給前端的情形

比如說(shuō)當(dāng)我們?cè)谧龅卿涷?yàn)證是,我們可能需要從后端獲取驗(yàn)證碼,這是后端傳遞給你的可能是一個(gè)圖片數(shù)據(jù)而不是驗(yàn)證碼數(shù)字。

接口回參:

打印一下:

二、數(shù)據(jù)獲取

如果我們?cè)谡?qǐng)求接口獲取數(shù)據(jù)時(shí)不指定返回?cái)?shù)據(jù)類型的話,我們獲取到的可能就是一堆亂碼數(shù)據(jù)。

因此我們?cè)赼xios接口請(qǐng)求里面指定responseType為blob

再打印一下:

這就獲得一個(gè)封裝好的blob類型數(shù)據(jù)了

三、數(shù)據(jù)展示

獲取到數(shù)據(jù)之后要用img標(biāo)簽進(jìn)行展示,img標(biāo)簽的src需要直接指向blob數(shù)據(jù)的話是沒(méi)有用的,所以我們要?jiǎng)?chuàng)建一個(gè)url來(lái)指向的的blob數(shù)據(jù),然后將url賦給img的src屬性。

1.window.URL.createObjectURL()

(1)URL

URL接口用于解析,構(gòu)造,規(guī)范化和編碼 URLs。

它通過(guò)提供允許您輕松閱讀和修改URL組件的屬性來(lái)工作。

通常,通過(guò)在調(diào)用URL的構(gòu)造函數(shù)時(shí)將URL指定為字符串或提供相對(duì)URL和基本URL來(lái)創(chuàng)建新的URL對(duì)象。

然后,您可以輕松讀取URL的已解析組成部分或?qū)RL進(jìn)行更改。

如果瀏覽器尚不支持URL()構(gòu)造函數(shù),則可以使用Window中的Window.URL屬性。

確保檢查您的任何目標(biāo)瀏覽器是否要求對(duì)此添加前綴。

(2)createObjectURL

createObjectURL返回一個(gè)DOMString包含一個(gè)唯一的blob鏈接(該鏈接協(xié)議為以blob:,后跟唯一標(biāo)識(shí)瀏覽器中的對(duì)象的掩碼)。

2.封裝blob數(shù)據(jù)

3.將url的值賦給img標(biāo)簽的src屬性

四、最終結(jié)果

五、另一種方式(FileReader)

我們使用FileReader API也可以實(shí)現(xiàn),不過(guò)我們是將file類型轉(zhuǎn)換為base64編碼,這樣img標(biāo)簽就可以之間展示。

1.FileReader

FileReader 對(duì)象允許Web應(yīng)用程序異步讀取存儲(chǔ)在用戶計(jì)算機(jī)上的文件(或原始數(shù)據(jù)緩沖區(qū))的內(nèi)容,使用 File 或 Blob 對(duì)象指定要讀取的文件或數(shù)據(jù)。

其中File對(duì)象可以是來(lái)自用戶在一個(gè)元素上選擇文件后返回的FileList對(duì)象,也可以來(lái)自拖放操作生成的 DataTransfer對(duì)象,還可以是來(lái)自在一個(gè)HTMLCanvasElement上執(zhí)行mozGetAsFile()方法后返回結(jié)果。

詳細(xì)可見MDN的:FileReader

所以當(dāng)后端傳遞一個(gè)file類型或者前端用戶上傳一個(gè)文件時(shí),我們可以使用FileReader來(lái)進(jìn)行處理

2.具體實(shí)現(xiàn)

        let reader = new FileReader(); // 創(chuàng)建FileReader()實(shí)例
        reader.onload = function (evt) { // 當(dāng)文件讀取完成時(shí)會(huì)執(zhí)行onload事件
            //替換img標(biāo)簽的url
            $("#showImg1").attr("src", evt.target.result);
            console.log(evt.target.result); // evt.target.result就是圖片文件的base64編碼
        }
        reader.readAsDataURL(imgFile); // 讀取imgFile文件

3.簡(jiǎn)單介紹

簡(jiǎn)單記錄一下FileRender的具體事件以及方法:

(1)事件

  • FileReader.onabort :處理abort (en-US)事件。該事件在讀取操作被中斷時(shí)觸發(fā)。
  • FileReader.onerror :處理error (en-US)事件。該事件在讀取操作發(fā)生錯(cuò)誤時(shí)觸發(fā)。
  • FileReader.onload :處理load (en-US)事件。該事件在讀取操作完成時(shí)觸發(fā)。

(2)方法

  • FileReader.abort() :中止讀取操作。在返回時(shí),readyState屬性為DONE。
  • FileReader.readAsArrayBuffer() :開始讀取指定的 Blob中的內(nèi)容, 一旦完成, result 屬性中保存的將是被讀取文件的 ArrayBuffer 數(shù)據(jù)對(duì)象.
  • FileReader.readAsBinaryString() :開始讀取指定的Blob中的內(nèi)容。一旦完成,result屬性中將包含所讀取文件的原始二進(jìn)制數(shù)據(jù)。
  • FileReader.readAsDataURL() :開始讀取指定的Blob中的內(nèi)容。一旦完成,result屬性中將包含一個(gè)data: URL格式的Base64字符串以表示所讀取文件的內(nèi)容。
  • FileReader.readAsText() :開始讀取指定的Blob中的內(nèi)容。一旦完成,result屬性中將包含一個(gè)字符串以表示所讀取的文件內(nèi)容。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3 diff算法之雙端diff算法詳解

    Vue3 diff算法之雙端diff算法詳解

    雙端Diff在可以解決更多簡(jiǎn)單Diff算法處理不了的場(chǎng)景,且比簡(jiǎn)單Diff算法性能更好。本文將通過(guò)示例為大家詳細(xì)講講雙端diff算法的實(shí)現(xiàn)與使用,需要的可以參考一下
    2022-09-09
  • Vue 列表上下過(guò)渡效果的實(shí)例代碼

    Vue 列表上下過(guò)渡效果的實(shí)例代碼

    最近有個(gè)需求,一個(gè)列表上下移動(dòng)要有簡(jiǎn)單過(guò)渡效果。本文通過(guò)實(shí)例代碼給大家介紹Vue 列表上下過(guò)渡效果,需要的朋友可以參考下
    2019-06-06
  • Vue中關(guān)于異步請(qǐng)求數(shù)據(jù)未更新的解決

    Vue中關(guān)于異步請(qǐng)求數(shù)據(jù)未更新的解決

    本文將探討Vue中異步請(qǐng)求數(shù)據(jù)未更新的常見原因,并提供解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • vue webpack打包后圖片路徑錯(cuò)誤的完美解決方法

    vue webpack打包后圖片路徑錯(cuò)誤的完美解決方法

    這篇文章主要介紹了vue webpack打包后圖片路徑錯(cuò)誤的解決方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-12-12
  • 分享vue里swiper的一些坑

    分享vue里swiper的一些坑

    這篇文章主要介紹了vue里swiper的一些坑及swiper在vue中的使用,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • Vue項(xiàng)目如何配置git忽略文件

    Vue項(xiàng)目如何配置git忽略文件

    這篇文章主要介紹了Vue項(xiàng)目如何配置git忽略文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue中設(shè)置背景圖片和透明度的簡(jiǎn)單方法

    Vue中設(shè)置背景圖片和透明度的簡(jiǎn)單方法

    在做項(xiàng)目的時(shí)候常需要設(shè)置背景圖片和透明度,下面這篇文章主要給大家介紹了關(guān)于Vue中設(shè)置背景圖片和透明度的簡(jiǎn)單方法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • vue使用element-ui的el-date-picker設(shè)置樣式無(wú)效的解決

    vue使用element-ui的el-date-picker設(shè)置樣式無(wú)效的解決

    本文主要介紹了vue使用element-ui的el-date-picker設(shè)置樣式無(wú)效的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • VUE響應(yīng)式原理的實(shí)現(xiàn)詳解

    VUE響應(yīng)式原理的實(shí)現(xiàn)詳解

    這篇文章主要為大家詳細(xì)介紹了VUE響應(yīng)式原理的實(shí)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • vue2.0實(shí)現(xiàn)移動(dòng)端的輸入框?qū)崟r(shí)檢索更新列表功能

    vue2.0實(shí)現(xiàn)移動(dòng)端的輸入框?qū)崟r(shí)檢索更新列表功能

    最近小編在做vue2.0的項(xiàng)目,遇到移動(dòng)端實(shí)時(shí)檢索搜索更新列表的效果,下面腳本之家小編給大家?guī)?lái)了vue2.0 移動(dòng)端的輸入框?qū)崟r(shí)檢索更新列表功能的實(shí)例代碼,感興趣的朋友參考下吧
    2018-05-05

最新評(píng)論