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 のインデックス有効条件とインデックス無効条件の結合

推薦する

ハイパーリンクを表示して開く方法

<br />インターネット上の無数の情報は基本的に HTML ドキュメントで構成されてお...

Tomcat は、Springboot プロジェクトの WAR パッケージの起動時にエラーを報告します: 子の起動時にエラーが発生しました

今日、会社の Springboot プロジェクトは、テストのためにテスト サーバーにデプロイする準備...

CSSはletter-spacingプロパティを通じて単語間の間隔を制御します。

letter-spacing プロパティ: 文字間のスペース (文字間隔) を増減します。このプロ...

Linuxはlsof/extundeleteツールを使用して、誤って削除されたファイルやディレクトリを復元します。

序文Linux には Windows のような目立つごみ箱がないため、簡単に復元することはできません...

MySQL 8.0はJSONを扱えるようになりました

目次1. 概要2. JSON基本ツール3. JSONパス式4. JSONを検索して変更する序文:長い...

Mysqlトランザクション処理の詳細な説明

1. MySQLのトランザクションの概念MySQL トランザクションは主に、操作量が多く複雑度の高い...

Linuxでプロセスが占有するポート番号を表示する

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...

HTML フォームを送信するいくつかの方法_PowerNode Java Academy

方法1: 送信ボタンから送信する <!DOCTYPE html> <html>...

three.js を使って立体的な矢印線を描く詳細な手順

需要: この需要は緊急に必要です!地下鉄のシーンでは、脱出経路を示す矢印を描かなければなりません。こ...

Nginx の負荷分散アルゴリズムとフェイルオーバー分析

概要Nginx ロード バランシングは、アップストリーム サーバー (実際のビジネス ロジックによっ...

Dockerのyumソースの設定とCentOS7へのインストールの詳細な説明

ここではCentOS7が使用されており、カーネルバージョンは [root@localhost ~]#...

JavaScript でフロントエンドのカウントダウン効果を実装する

この記事では、フロントエンドのカウントダウン効果を実現するためのJavaScriptの具体的なコード...

優れたユーザー インターフェース デザインのための 37 のヒント (画像付き)

1. 複数列レイアウトではなく、単一列レイアウトを使用する1 列のレイアウトにより、全体的な状況をよ...

jsはショッピングウェブサイトの商品の拡大鏡効果を実現します

この記事では、ショッピングサイトの商品の拡大鏡効果を実現するためのjsの具体的なコードを紹介します。...

HTML ページに画像を挿入し、マップ インデックスを追加する方法の例

1. WEBでサポートされている画像形式: GIF: 256色を保存でき、透明色をサポートし、アニメ...