FileSystem API で少し遊んでいます。
ダウンロードリンクを生成し、ユーザーにファイルを「ブラウザの方法」でダウンロードさせる多くの例を見つけました。
2つのことを知りたい:
Ajaxの結果をファイルとしてディスクに直接書き込む方法はありますか(種類のプロンプトなし)。たとえば、ユーザーのデスクトップが好きです。
これに最も適した形式はblobですか?
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200){
console.log(this.response, typeof this.response);
var img = document.getElementById('img');
var url = window.URL = window.webkitURL;
img.src = url.createObjectURL(this.response);
}
}
xhr.open('GET', 'http://www.newyorker.com/online/blogs/photobooth
/NASAEarth-01.jpg');
xhr.responseType = 'blob';
xhr.send();
残念ながら、通常のファイルへの書き込みは現在受け入れられていません(受け入れられた回答 HTML5およびJavaScriptを使用したローカルファイルの変更 )。
サンドボックス化されたファイルシステムにのみ書き込むことができます。
参考までに、これはChrome Packaged App: http://developer.chrome.com/apps/fileSystem.html で行うことができますが、それでもユーザーは少なくともファイルを最初に選択します任意のファイルへの書き込みは深刻なセキュリティホールになります。
本当に解決しようとしている問題は何ですか?
以下で指定されているように、Filesystem APIは標準の仕様には含まれていないことに注意してください。 http://www.w3.org/TR/file-system-api/
編集:リンクが変更された場合の仕様の引用:「ファイルAPI:ディレクトリとシステムW3Cワーキンググループノート2014年4月24日
このドキュメントの作業は中止されており、実装の基礎として参照または使用すべきではありません。 "
(これは質問に直接関係していませんが、FileSystem APIをこれ以上使用しないことを知っておくことが重要です。)
別のリンク: http://www.html5rocks.com/en/tutorials/file/filesystem/
「2014年4月、public-webappsで、Filesystem API仕様は廃止されたと見なされるべきであると発表されました。他のブラウザは、それを実装することにほとんど関心を示していません。」