Javascript ファイルと Blob の詳細な説明

Javascript ファイルと Blob の詳細な説明

ファイル()

File() コンストラクターは新しい File オブジェクト インスタンスを作成します。

文法

var myFile = new File(ビッ​​ト、名前[、オプション]);

パラメータ

ビット

ArrayBufferArrayBufferViewBlob 、またはDOMStringオブジェクト、またはこれらの任意の組み合わせを含む配列。これは UTF-8 でエンコードされたファイルの内容です。

名前

USVString 、ファイル名またはファイル パスを示します。

オプション オプション

ファイルのオプションのプロパティを含むオプション オブジェクト。利用可能なオプションは次のとおりです。

  • type : ファイルに配置されるコンテンツの MIME タイプを表す DOMString。デフォルト値は "" です。
  • lastModified : ファイルが最後に変更されたときの Unix タイムスタンプ (ミリ秒単位) を表す数値。デフォルト値は Date.now() です。

var file = new File(["私の名前"], "infoTxt", {
  タイプ: "text/plain",
});

ブロブ()

Blob オブジェクトは、不変の生のファイルのようなオブジェクトを表します。データはテキストまたはバイナリ形式で読み取ることができ、データ操作のために ReadableStream に変換することもできます。

Blob は必ずしも JavaScript のネイティブ形式でデータを表すわけではありません。 File インターフェイスは Blob に基づいており、blob の機能を継承し、ユーザーのシステム上のファイルをサポートするように拡張されています。Blob オブジェクトの API も File インターフェイスにリストされています。

他の非 BLOB オブジェクトとデータから Blob を構築するには、Blob() コンストラクターを使用します。 BLOB のデータのサブセットを作成するには、slice() メソッドを使用します。ユーザーのファイル システム上のファイルに対応する Blob オブジェクトを取得するには、ファイルのドキュメントを参照してください。

文法

var aBlob = new Blob(配列、オプション);

パラメータで指定された配列の連結で構成される内容を持つ新しく作成された Blob オブジェクトを返します。

パラメータ

  • array は、 ArrayBufferArrayBufferViewBlobDOMString 、または Blob に格納される同様のオブジェクトの混合の配列です。 DOMStrings は UTF-8 としてエンコードされます。
  • options はオプションの BlobPropertyBag 辞書であり、次の 2 つのプロパティを指定できます。
    • type、デフォルト値は "" で、これは BLOB に格納される配列コンテンツの MIME タイプを表します。
    • 行末の場合、デフォルト値は「transparent」で、行末 \n を含む文字列の書き方を指定します。 これは、行末がホスト オペレーティング システムのファイル システムに適した改行文字に変更されることを意味する「ネイティブ」、または BLOB に格納されている行末が変更されないことを意味する「透過的」の 2 つの値のいずれかです。

財産

Blob.size 読み取り専用

Blob オブジェクトに含まれるデータのサイズ (バイト単位)。

Blob.type 読み取り専用

この Blob オブジェクトに含まれるデータの MIME タイプを示す文字列。タイプが不明な場合、値は空の文字列になります。

方法

Blob.slice([開始[, 終了[, コンテンツタイプ]]])

ソース Blob オブジェクトの指定された範囲のデータを含む新しい Blob オブジェクトを返します。

Blob.stream()

BLOB の内容を読み取ることができるReadableStreamを返します。

Blob.text()

UTF-8 形式の BLOB の内容全体を含むUSVStringに解決される promise を返します。

Blob.arrayBuffer()

バイナリ形式で BLOB のすべてのコンテンツを含むArrayBufferを含む promise を返します。

const aFileParts = ['<a id="a"><b id="b">hey!</b></a>']; // DOMStrings を含む配列 const oMyBlob = new Blob(aFileParts, {type : 'text/html'}); // BLOB を取得
oMyBlob.サイズ // 32
oMyBlob.type // 'text/html'

Blob() コンストラクターを使用すると、他のオブジェクトから Blob オブジェクトを作成できます。たとえば、文字列から BLOB を構築するには、次のようにします。

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

Blobを使用して、型付き配列を指すURLを作成します。

const imgBlob = fetchedImgData(); // インターフェースを通じて返される画像リソース。返される responseType を blob に設定します。
const blob = new Blob([imgBlob], {type: 'image/png' }); // 適切な MIME タイプを渡します const url = URL.createObjectURL(blob);
// blob:d3958f5c-0777-0845-9dcf-2cb28783acaf のような URL 文字列が生成されます // img.src などで通常の URL のように使用できます。

BLOBからデータを抽出する

Blob からコンテンツを読み取る 1 つの方法は、FileReader を使用することです。次のコードは、Blob の内容を型付き配列として読み取ります。

const リーダー = 新しい FileReader();
リーダー。ArrayBuffer として読み込みます(blob)。
reader.addEventListener("load ", 関数(readRes) {
   // readRes.target.result は arrayBuffer の blob に変換されます
});

Blob の内容を読み取る別の方法は、Response オブジェクトを使用することです。次のコードは、Blob の内容をテキストとして読み取ります。

var text = 新しいレスポンス(blob).text() を待機します。

Blob は、FileReader の他のメソッドを使用して文字列またはデータ URL として読み取ることができます。

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • js でファイル コントロールの完全なパスを取得するにはどうすればよいでしょうか?
  • JavaScript と fileReader を組み合わせて画像をアップロードする
  • jsはFileReaderを使用してローカルファイルまたはBLOBを読み取ります
  • js 画像アップロードにおけるファイル、bolb、base64 画像間の変換

<<:  CSS3で実装されたグラデーションスライド効果

>>:  MySQL のインデックス有効条件とインデックス無効条件の結合

推薦する

Vueはカルーセルアニメーションを実装します

この記事では、カルーセルアニメーションを実現するためのVueの具体的なコードを例として紹介します。具...

Vue3 テーブルコンポーネントの使用

目次1. Antデザインビュー1. 公式ウェブサイトアドレス2. 使い方3.電子書籍テーブルを表示す...

JavaScript で右クリック メニューを統合する layim のサンプル コード

目次1. 効果の実証2. 実装チュートリアル3. 最後に、完全なコードを添付します4. その他の右ク...

ノードイベントループとメッセージキューの分析

目次非同期とは何ですか?なぜ非同期性が必要なのでしょうか?非同期IOとは何ですか?イベントループとは...

HTML メタビューポート属性の詳細な説明

ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウィンドウ」(ビューポート) に配置し...

Vueの子コンポーネントが親コンポーネントのメソッドを呼び出す場合の詳細な説明

1. 子コンポーネントのthis.$parent.eventを通じて親コンポーネントメソッドを直接呼...

WeChatアプレットが計算機機能を実装

この記事では、WeChatアプレットの計算機機能を実装するための具体的なコードを参考までに紹介します...

MySQL トランザクションと分離レベルの基本原理の簡単な分析

目次序文1. 取引の基本原則の簡単な分析原子性:持続性分離:一貫性: 2. 分離レベルの基本原理の分...

InnoDB タイプの MySql によるテーブル構造とデータの復元

前提条件: データベースを復元するために必要な .frm ファイルと .ibd ファイルを保存します...

フローチャートとUIフローの違い

UI デザインにおける多くの概念は言葉で言えば似ているように見えるかもしれませんが、実際には大きく異...

純粋な CSS で実装された 3 つの通知バーのスクロール効果

序文通知バー コンポーネントは、比較的一般的なコンポーネントです。基本的に、すべてのサイトにこのよう...

ハイパーリンクに関するいくつかの質問

ポテトチップスパーティーのこのエピソードに参加して、何人かの友人に会えてとても嬉しいです。思いがけず...

パーソナライズされたクリエイティブなウェブサイトデザインの例 (30)

そこで、個性的なスタジオやフリーランスを表現する組み合わせを 30 個選びました。デザインを目立たせ...

Linuxシステムでノードプロセスを実行しているが、プロセスを強制終了できない問題を解決します

まず、Linux システムで実行されているノード プロセスはプロセスを強制終了できないことを紹介しま...

CentOS7にMySQL 8.0.26をインストールする手順

1. まず、お使いのマシンに応じて、MySQL 公式サイトから対応するデータベースをダウンロードしま...