2012-04-25 1 views
1

私はHTML5ファイルシステムAPIの点について混乱しています。HTML5ファイルシステムAPIはサーバーなしで自分のハードディスク上の.htmlファイルを編集するのに役立ちますか?

私が知る限り、File APIで作成されたサンドボックスファイルの内容を参照するには、ドメイン名を参照する必要があります。これは、データのchrootのようにHTML5ファイルシステムの範囲を限定することによって軽減される

漏れや民間の消去:「HTML5ファイルシステムAPIを使用した」

は、「セキュリティの考慮事項」の下に言って、これを持っています、起点固有のサンドボックス。アプリケーションは、別のドメイン/原点のファイルシステムにアクセスすることはできません。

「原点」とは何ですか?限り、私はその本はそれらを定義していないと言うことができます。たとえそのドメインがlocalhostであっても、原点にドメイン名が含まれている必要があります。

これが該当しますか?それがあれば、それは吸う。つまり、ローカルファイルを編集できるエディタを構築することはできません。セキュリティ上の考慮事項はありますが、少なくともプランの一部ではなく、ローカルファイルを編集できるようにしていますか? HTML5 APIは、インターネット上のコンテンツやローカルサーバーの設定方法を知っているユーザーのみをターゲットにしていますか?

+0

'localhost'でサーバを動作させるのはどうですか?最近の小型で高速なHTTPサーバーが標準です... – sarnold

+0

何か問題はありません。問題は、私がそれを理解しない人のためのアプリケーションを書こうとしていることです。そして私は間違いなく彼らがそれをするのを手伝って責任を負うことを望んでいません。 –

答えて

3

This is the full definition of origin in HTML5RFC 6454を指す。上位ビットは限り、あなたが心配しているようです:

2人の起源はスキーム/ホスト/ポートのトリプルがある場合、2つの起源 は、それらが同一のスキーム、ホストが、場合に限り同じですが、 とポート。

JavaScriptからファイルシステムを参照することはできませんが、これについて考えると、これは良いことです。 JavaScriptを使用してファイルシステムをブラウズすることができれば、あなたが訪れたウェブページは、あなたが知ることなしにすべてのファイルを潜在的に盗む可能性があります。しかし、それはファイルにアクセスできないことと全く同じものではありませんが、そこ年間、HTML内のファイルにアクセスするための方法をされ、それはこのようになります:

<input type="file" id="inputField"> 

HTML5はなく、この要素を選択した任意のファイルにアクセスすることができますサーバーに往復する必要があります。

var inputElement = document.getElementById("inputField"); 
inputElement.addEventListener("change", handleFiles, false); 

function handleFiles() { 
    var fileList = this.files; 

    for (var i = 0, numFiles = files.length; i < numFiles; i++) { 
     var file = files[i]; 
     //do stuff with file 
    } 
} 

Iから上記(未テスト)コードを盗んだthis MSN articleにおけるいくつかの他の良い例があります。

を使用している場合は、Webサーバーに一度アクセスしてからサーバーをシャットダウンし、引き続きアプリケーションを使用して上記の方法でファイルを編集できます。

関連する問題