" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript File和Blob詳解

 更新時(shí)間:2021年12月23日 10:47:20   作者:定栓  
這篇文章主要為大家介紹了Javascript File和Blob,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

File()

File()?構(gòu)造器創(chuàng)建新的 File 對(duì)象實(shí)例。

語法

var myFile = new File(bits, name[, options]);

參數(shù)

bits

一個(gè)包含ArrayBufferArrayBufferView,Blob,或者 DOMString 對(duì)象的 Array — 或者任何這些對(duì)象的組合。這是 UTF-8 編碼的文件內(nèi)容。

name

USVString,表示文件名稱,或者文件路徑。

options 可選

選項(xiàng)對(duì)象,包含文件的可選屬性??捎玫倪x項(xiàng)如下:

  • type: DOMString,表示將要放到文件中的內(nèi)容的 MIME 類型。默認(rèn)值為 “” 。
  • lastModified: 數(shù)值,表示文件最后修改時(shí)間的 Unix 時(shí)間戳(毫秒)。默認(rèn)值為?Date.now()。

示例

var file = new File(["my name"], "infoTxt", {
  type: "text/plain",
});

Blob()

Blob?對(duì)象表示一個(gè)不可變、原始數(shù)據(jù)的類文件對(duì)象。它的數(shù)據(jù)可以按文本或二進(jìn)制的格式進(jìn)行讀取,也可以轉(zhuǎn)換成 ReadableStream 來用于數(shù)據(jù)操作。

Blob 表示的不一定是JavaScript原生格式的數(shù)據(jù)。File?接口基于Blob,繼承了 blob 的功能并將其擴(kuò)展使其支持用戶系統(tǒng)上的文件,同時(shí)?Blob?對(duì)象的API也被列在 File 接口中。

要從其他非blob對(duì)象和數(shù)據(jù)構(gòu)造一個(gè) Blob,請(qǐng)使用?Blob()?構(gòu)造函數(shù)。要?jiǎng)?chuàng)建一個(gè) blob 數(shù)據(jù)的子集 blob,請(qǐng)使用?slice()?方法。要獲取用戶文件系統(tǒng)上的文件對(duì)應(yīng)的?Blob?對(duì)象,請(qǐng)參閱 File 文檔。

語法

var aBlob = new Blob( array, options );

返回一個(gè)新創(chuàng)建的 Blob 對(duì)象,其內(nèi)容由參數(shù)中給定的數(shù)組串聯(lián)組成。

參數(shù)

  • array 是一個(gè)由ArrayBuffer,?ArrayBufferView,?Blob,?DOMString?等對(duì)象構(gòu)成的?Array?,或者其他類似對(duì)象的混合體,它將會(huì)被放進(jìn)?Blob。DOMStrings會(huì)被編碼為UTF-8。
  • options 是一個(gè)可選的BlobPropertyBag字典,它可能會(huì)指定如下兩個(gè)屬性:
    • type,默認(rèn)值為 “”,它代表了將會(huì)被放入到blob中的數(shù)組內(nèi)容的MIME類型。
    • endings,默認(rèn)值為"transparent",用于指定包含行結(jié)束符\n的字符串如何被寫入。 它是以下兩個(gè)值中的一個(gè): “native”,代表行結(jié)束符會(huì)被更改為適合宿主操作系統(tǒng)文件系統(tǒng)的換行符,或者 “transparent”,代表會(huì)保持blob中保存的結(jié)束符不變

屬性

Blob.size?只讀

Blob 對(duì)象中所包含數(shù)據(jù)的大?。ㄗ止?jié))。

Blob.type?只讀

一個(gè)字符串,表明該 Blob 對(duì)象所包含數(shù)據(jù)的 MIME 類型。如果類型未知,則該值為空字符串。

方法

Blob.slice([start[, end[, contentType]]])

返回一個(gè)新的 Blob 對(duì)象,包含了源 Blob 對(duì)象中指定范圍內(nèi)的數(shù)據(jù)。

Blob.stream()

返回一個(gè)能讀取blob內(nèi)容的 ReadableStream。

Blob.text()

返回一個(gè)promise且包含blob所有內(nèi)容的UTF-8格式的 USVString

Blob.arrayBuffer()

返回一個(gè)promise且包含blob所有內(nèi)容的二進(jìn)制格式的 ArrayBuffer

示例

const aFileParts = ['<a id="a"><b id="b">hey!</b></a>']; // 一個(gè)包含DOMString的數(shù)組
const oMyBlob = new Blob(aFileParts, {type : 'text/html'}); // 得到 blob
oMyBlob.size // 32
oMyBlob.type // 'text/html'

Blob()?構(gòu)造函數(shù)允許通過其它對(duì)象創(chuàng)建 Blob 對(duì)象。比如,用字符串構(gòu)建一個(gè) blob:

var debug = {hello: "world"};
var blob = new Blob([JSON.stringify(debug, null, 2)], {type : 'application/json'});

使用 Blob 創(chuàng)建一個(gè)指向類型化數(shù)組的URL

const imgBlob = fetchedImgData(); // 通過接口返回的圖片資源,設(shè)置返回的responseType為blob
const blob = new Blob([imgBlob], {type: 'image/png' }); // 傳入一個(gè)合適的 MIME 類型
const url = URL.createObjectURL(blob);
// 會(huì)產(chǎn)生一個(gè)類似 blob:d3958f5c-0777-0845-9dcf-2cb28783acaf 這樣的URL字符串
// 你可以像使用普通 URL 那樣使用它,比如用在 img.src 上。

從 Blob 中提取數(shù)據(jù)

一種從Blob中讀取內(nèi)容的方法是使用 FileReader。以下代碼將 Blob 的內(nèi)容作為類型數(shù)組讀?。?/p>

const reader = new FileReader();
reader.readAsArrayBuffer(blob);
reader.addEventListener("load ", function(readRes) {
   // readRes.target.result 轉(zhuǎn)化為arrayBuffer的 blob
});

另一種讀取Blob中內(nèi)容的方式是使用Response對(duì)象。下述代碼將Blob中的內(nèi)容讀取為文本:

var text = await new Response(blob).text();

通過使用 FileReader 的其它方法可以把 Blob 讀取為字符串或者數(shù)據(jù)URL。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • js獲取url傳值的方法

    js獲取url傳值的方法

    這篇文章主要介紹了js獲取url傳值的方法,實(shí)例分析了字符串分割與正則分析兩種方法,并補(bǔ)充了一個(gè)基于正則匹配實(shí)現(xiàn)的js獲取url的get傳值函數(shù),需要的朋友可以參考下
    2015-12-12
  • 利用Javascript實(shí)現(xiàn)簡(jiǎn)單的轉(zhuǎn)盤抽獎(jiǎng)

    利用Javascript實(shí)現(xiàn)簡(jiǎn)單的轉(zhuǎn)盤抽獎(jiǎng)

    這篇文章主要介紹了利用Javascript實(shí)現(xiàn)的簡(jiǎn)單的轉(zhuǎn)盤抽獎(jiǎng),文中分享了兩種抽獎(jiǎng)效果,一種是默認(rèn)轉(zhuǎn)動(dòng),一種是需要點(diǎn)擊開始轉(zhuǎn)動(dòng)的,并給出了晚上的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • 如何理解JS函數(shù)防抖和函數(shù)節(jié)流

    如何理解JS函數(shù)防抖和函數(shù)節(jié)流

    函數(shù)防抖和函數(shù)節(jié)流都是對(duì)函數(shù)進(jìn)行特殊的設(shè)置,減少該函數(shù)在某一時(shí)間段內(nèi)頻繁觸發(fā)帶來的副作用。二者只是采用的設(shè)置方式和原理不一樣,其最終的目的是一樣的。
    2021-05-05
  • 淺談JavaScript中this的指向問題

    淺談JavaScript中this的指向問題

    這篇文章主要介紹了淺談JavaScript中this的指向問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • JavaScript中十種一步拷貝數(shù)組的方法實(shí)例詳解

    JavaScript中十種一步拷貝數(shù)組的方法實(shí)例詳解

    JavaScript中我們經(jīng)常會(huì)遇到拷貝數(shù)組的場(chǎng)景,但是都有哪些方式能夠來實(shí)現(xiàn)呢,我們不妨來梳理一下,感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • js控制元素顯示在屏幕固定位置及監(jiān)聽屏幕高度變化的方法

    js控制元素顯示在屏幕固定位置及監(jiān)聽屏幕高度變化的方法

    這篇文章主要介紹了js控制元素顯示在屏幕固定位置及監(jiān)聽屏幕高度變化的方法,涉及javascript針對(duì)頁面元素及樣式屬性的相關(guān)操作技巧,需要的朋友可以參考下
    2015-08-08
  • 用js實(shí)現(xiàn)的自定義的對(duì)話框的實(shí)現(xiàn)代碼

    用js實(shí)現(xiàn)的自定義的對(duì)話框的實(shí)現(xiàn)代碼

    javascript alert函數(shù)的替代方案,一個(gè)自定義的對(duì)話框的方法
    2010-03-03
  • uniapp實(shí)現(xiàn)人臉識(shí)別功能詳細(xì)示例

    uniapp實(shí)現(xiàn)人臉識(shí)別功能詳細(xì)示例

    這次使用uni-app框架開發(fā)一個(gè)小程序,有一個(gè)刷臉功能,所以下面這篇文章主要給大家介紹了關(guān)于uniapp實(shí)現(xiàn)人臉識(shí)別功能的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • javascript中floor使用方法總結(jié)

    javascript中floor使用方法總結(jié)

    在本篇文章中小編給大家分享了關(guān)于javascript中floor使用的知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2019-02-02
  • js 聲明數(shù)組和向數(shù)組中添加對(duì)象變量的簡(jiǎn)單實(shí)例

    js 聲明數(shù)組和向數(shù)組中添加對(duì)象變量的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)硪黄猨s 聲明數(shù)組和向數(shù)組中添加對(duì)象變量的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07

最新評(píng)論

靖远县| 桦南县| 双柏县| 江阴市| 扬州市| 镇雄县| 全南县| 买车| 舞阳县| 大化| 永兴县| 金平| 达尔| 闽侯县| 香港 | 鸡西市| 临城县| 西华县| 汕头市| 湖北省| 西平县| 常山县| 合水县| 万山特区| 额尔古纳市| 鲁甸县| 赤城县| 澳门| 水富县| 连州市| 通化县| 宝兴县| 阜宁县| 商丘市| 承德市| 南平市| 鹤庆县| 大厂| 方正县| 兴国县| 阳西县|