私はまだそれの周りに私の頭をラップしようとしています。JSフェッチAPIを使用してファイルをアップロードするにはどうすればよいですか?
私は、ファイル入力でユーザーがファイル(あるいは複数)を選択することができます:
<form>
<div>
<label>Select file to upload</label>
<input type="file">
</div>
<button type="submit">Convert</button>
</form>
をそして私は<fill in your event handler here>
を使用してsubmit
イベントをキャッチすることができます。しかし、いったんやりますと、fetch
を使ってファイルを送信するにはどうすればよいですか?
fetch('/files', {
method: 'post',
// what goes here? What is the "body" for this? content-type header?
}).then(/* whatever */);
私は近くにいましたが、かなりありませんでした。大きなファイルではどうしますか?これはブラウザのメモリにすべてロードされているのでしょうか、それとも読み込み時にサーバーに送信していますか? – deitch
まず、小さいサイズのチャンクを読み込んでファイルをストリーミングする必要があります。そのため、ファイルの一部をメモリに保持するだけです。ファイルオブジェクトはBlobオブジェクトのインスタンスなので、.slice()メソッドを使用してこれらのチャンクを作成できます。 – Damien
ビンゴ。ありがとう、@ダミアン – deitch