JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

HTML5のBlob.slice()メソッドとは?指定範囲のデータを抽出する方法を解説

HTML5のBlob.slice()メソッドの役割

HTML5で利用できる Blob.slice() メソッドは、元のBlobオブジェクト(ファイル)のうち、指定したバイト範囲に含まれるデータだけを抜き出し、新しいBlobオブジェクトとして生成するためのメソッドです。

このメソッドを使うと、巨大なファイルの一部だけを扱いたい場合に非常に便利です。例えば、大容量ファイルを複数の小さな塊(チャンク)に分けて送信する「分割アップロード」などで広く活用されています。

slice()メソッドの基本構文

blob.slice(start, end, contentType)
  • start:抽出を開始するバイト位置(省略した場合は先頭から)
  • end:抽出を終了するバイト位置(省略した場合は末尾まで)
  • contentType:新しいBlobに設定するMIMEタイプ(省略可能)

slice()を使ったバイナリデータの送信例

次の例では、テキストデータからBlobを生成し、XMLHttpRequestのPOSTメソッドを使ってサーバーへ送信しています。slice()で得られたBlobも同様の手順でそのまま送信できます。

var val = new XMLHttpRequest();
val.open("POST", url, true);
val.onload = function (event) {
  // サーバーからのレスポンスに対する処理
};
var blob = new Blob(['demo'], {type: 'text/plain'});
val.send(blob);

slice()利用時のポイント

Blob.slice() は元のBlobの内容を書き換えるわけではなく、指定範囲のデータを持つ別の新しいBlobを返す点に注意してください。この特性により、元のファイルを保持したまま安全に部分処理が行えます。

また、File APIの File オブジェクトはBlobを継承しているため、ユーザーが選択したファイルに対しても同じようにslice()を適用でき、メモリ効率の良い大容量ファイル処理を実現できます。

  1. AIファイルとは?開き方から変換方法まで徹底解説

    この記事のポイントAIファイルは、Adobe Illustrator(アドビ イラストレーター)で作成されるベクター画像ファイルです。開くにはIllustratorを使用するか、無料のInkscapeなどを利用できます。Zamzarなどのオンラインツールや各種ソフトを使って、PNG・JPG・SVGなどの形式に変換できます。この記事では、AIファイルの概要から、実際に開く方法、SVG・JPG・PDF・PNGなど他の形式への変換方法まで、わかりやすく解説します。他のソフトウェアとの互換性を持たせたい場合にも役立つ内容です。AIファイルとは何か拡張子が「.ai」のファイルは、ほとんどの場合、Adob

  2. JavaScript の ArrayBuffer.slice() メソッドの使い方を解説

    JavaScript の arrayBuffer.slice() メソッドは、既存の ArrayBuffer の一部をコピーして、新しい ArrayBuffer オブジェクトを返すメソッドです。コピー範囲は「開始位置(begin)」から「終了位置(end)」までで、開始位置は含まれ、終了位置は含まれません(begin 以上 end 未満)。基本構文arrayBuffer.slice(begin, end)begin:コピーを開始するインデックス(この位置は含まれます)。負の値を指定すると、バッファ末尾からの相対位置として扱われます。end:コピーを終了するインデックス(この位置自体は含まれませ