HTML5ファイルAPIを使用してファイルをWebアプリケーションにアップロードしています。
Webページに入力要素があり、これを使用してファイルを読み取り、アップロード関数を呼び出します。
<input type="file">
$('input[type="file"]').on("change",function(e){
console.log(this.files);
// upload each file in this.files
});
これは、OS上のネイティブファイルに対して完全に機能します。 example.com/blah/file1.jpgなどのリモートファイルをアップロードしたいのですが、File APIを使用してこのファイルを読み取るにはどうすればよいですか?それを行う方法はありますか?
リモートファイルはXMLHttpRequest
からダウンロードして、Blob
として処理できます。次に、それを別のサーバーにアップロードします。アップロードはXMLHttpRequest
以上である必要があります。これは、ブラウザーのXHRレベル2の実装に依存しています。このリンクには、必要なコードスニペットが含まれています。
http://www.html5rocks.com/en/tutorials/file/xhr2/
リモートファイルをBlob
としてダウンロードするためのスニペットとBlob
をサーバーにアップロードするためのスニペットの両方があります。