HTML5/JSからファイルに書き込む方法があるのだろうか? broswerでは...HTML5/JSでファイルを書き込むことはできますか?
答えて
はい、新しいFileWriter APIを使用します。
http://www.w3.org/TR/file-writer-api/
あなたはここに現在のブラウザのサポートを見ることができます:ユーザのファイルへのWebページへのアクセスを与えるためhttp://caniuse.com/#feat=filesystem
そのリンクにfirefoxとchromeがファイルインターフェイスをサポートしていると書かれていますが、私が見る限りFileWriterはサポートしていません。 – danza
@danza:私はリンクを更新しました –
[このページ] ://www.html5rocks.com/en/tutorials/file/filesystem/)、W3C(http://lists.w3.org/Archives/Public/public-webapps/2014AprJun/0010.html)は、 APIを2014-04-24で作成し、「[実装の基準として参照または使用すべきではありません](http://www.w3.org/TR/file-system-api/)」と述べました。だから、それはChrome上でのみ実装されているようです。 – FriendFX
私の知る限りでは、あなたは、HTML5からファイルに書き込むことはできませんでしょうセキュリティ上のリスクがあります。
ページに後でアクセスできるようにデータを保存するだけであれば、HTML5にはWeb Storageというものがあります。
または、クッキー(非常に小さい場合)またはサーバーにデータを保存することができます。
実際には正しいアンワーカーは – Supersharp
です。ここでは、FileWriter APIのサポートが廃止され、完全に廃止される可能性があるという上記のコメントを読んでいない。 – Wade
はい、& HTML5 + JSを使用してファイルを読むことは可能です。
リンクは作業を開始する - あなたの最終目標は、ユーザーが保存できるようにすると仮定するとhttp://speckyboy.com/2012/10/30/getting-to-grips-with-the-html5-file-api-2/
- 私はまた、あなたが役に立つかもしれません同じトピックにSpeckyBoyのためにしばらく前に記事を書いた
Exploring FileSystem APIリンクを右クリックして[名前を付けて保存...]を選択したときと同じように、セキュリティ上の考慮が必要なため、これらのAPIのブラウザ対応範囲はまだありません。
APIは、data:
uriへのリンクと、推奨ファイル名を指定するdownload
属性を使用しています。例えば:
<a id="save" download="earth.txt" href="data:text/plain,mostly harmless ">Save</a>
クリックすると、少なくともChromeで、これはあなたのダウンロードディレクトリ内earth.txt
としてテキストmostly harmless
(および末尾の改行)を含むファイルを保存します。代わりにJavaScriptからファイルの内容を設定するには、最初にこの関数を呼び出す:
function setSaveFile(contents, file_name, mime_type) {
var a = document.getElementById('save');
mime_type = mime_type || 'application/octet-stream'; // text/html, image/png, et c
if (file_name) a.setAttribute('download', file_name);
a.href = 'data:'+ mime_type +';base64,'+ btoa(contents || '');
}
別の可能性は、WindowsプラットフォームでのClickOnceアプリのようなものを作成することを検討することです。これにより、ユーザーのOSで実行されるダウンロード可能な実行可能ファイルへのリンクが表示されますが、データを送信および取得するためのWebベースのコールバックが作成される可能性があります。 ClickOnceアプリケーションにはブラウザコントロールが組み込まれているため、ユーザーのストレージに直接通話する機能を備えたWeb互換アプリケーションが両方とも用意されています。
この質問への回答は以下の質問に回答によって異なります。あなたはそのような機能をサポート事実、現在唯一のクロムベースのブラウザ(クローム&オペラ)に存在する微細な
- ていますか?
- このような能力を活用するための独自のAPIを利用しても問題ありませんか?
- 今後このAPIを削除する可能性はありますか?
- サンドボックス(そのファイルの外側には効果がない場所)に、上記のAPIで作成されたファイルをディスクに圧縮しても問題ありませんか?
あなたは上記のすべてに「はい」と答えた場合は、[はい、FileWriterとFileSystem APIを使用して、あなたはJavascriptを使用してブラウザのタブ/ウィンドウのコンテキストからファイルを書き込むことができます。ここで
は、APIが、これを行うためにタンデムで使用されているかの簡単な例です:BakedGoods *、共通のストレージ操作を行うために使用することができます統一されたインタフェースを確立JavaScriptライブラリで
function onQuotaRequestSuccess(grantedQuota)
{
function saveFile(directoryEntry)
{
function createFileWriter(fileEntry)
{
function write(fileWriter)
{
var dataBlob = new Blob(["Hello world!"], {type: "text/plain"});
fileWriter.write(dataBlob);
}
fileEntry.createWriter(write);
}
directoryEntry.getFile(
"testFile",
{create: true, exclusive: true},
createFileWriter
);
}
requestFileSystem(Window.PERSISTENT, grantedQuota, saveFile);
}
var desiredQuota = 1024 * 1024 * 1024;
var quotaManagementObj = navigator.webkitPersistentStorage;
quotaManagementObj.requestQuota(desiredQuota, onQuotaRequestSuccess);
上記(ファイルシステムを含む)すべてのネイティブ、およびいくつかの非ネイティブの貯蔵施設は、これを用いて達成される:
bakedGoods.set({
data: [{key: "testFile", value: "Hello world!", type: "text/plain"}],
storageTypes: ["fileSystem"],
options: {fileSystem:{storageType: Window.PERSISTENT}},
complete: function(byStorageTypeStoredItemRangeDataObj, byStorageTypeErrorObj){}
});
ファイルシステムの仕様では、ディレクトリ構造がディスク上に表示される方法にはガイドラインを定義しません。たとえばChromiumベースのブラウザでは、サンドボックスには仮想ファイルシステム(ブラウザ内からアクセスしたときと同じ形式でディスクに必ず存在するディレクトリ構造ではありません)が作成され、ディレクトリとファイルが作成されますAPIが配置されます。
APIを使用してシステムにファイルを書き込むことはできますが、APIを使用しないで(FileSystem APIを使用しないで)ファイルを検索することは軽微です。
* BakedGoodsは、ローカルまたはリモートでこの右ここ男:)
- 1. Formatterでファイルに書き込むことはできますか?
- 2. ファイルに書き込むことはできませんが、テキストに書き込むことができます
- 3. Cでファイルに書き込むことができません
- 4. この形式のXMLファイルに書き込むことはできますか?
- 5. ログファイルにアサートメッセージを書き込むことはできますか?
- 6. モジュールはファイルをどこに書き込むべきですか?
- 7. NodeJs:ファイルを書き込むことができません
- 8. androidにファイルを書き込むことができません
- 9. WordPressで直接ファイルに書き込むことはできますか?
- 10. ファイルに直接MATLABパッチを書き込むことはできますか
- 11. DynamoDBグローバルセカンダリインデックスに書き込むことはできますか?
- 12. std :: stringに書き込むことはできますか?
- 13. ファイルに書き込むことができません
- 14. ファイルに書き込むことができません
- 15. ファイルLPT1に書き込むことができません。Java
- 16. xlwtはXLSファイルに書き込むことはできませんか?
- 17. csvファイルに書き込むことはできますが、追加することはできません。
- 18. ASP.NETアプリケーションはIIS8でファイルに書き込むことができませんWS2012
- 19. は(Xamarin C#)をファイルにJSONを書き込むことができません
- 20. Javaでファイルに書き込むときに、ファイルをフォルダに保存することはできません。
- 21. ワードプレスはディスクにファイルを書き込むことができません
- 22. std :: ofstreamはファイルにstd :: stringを書き込むことができません
- 23. PDFKitはストリームにファイルを書き込むことができません
- 24. jRTFはファイルにテンプレートを書き込むことができません
- 25. ファイルに直接書き込むことなく、後でログを集計してファイルに書き込む
- 26. 1つのスクリプトでテキストファイルを開き、そのファイルに子スクリプトで書き込むことはできますか?
- 27. ピクセルブロックをバンドシーケンシャルモードで書き込むことができません
- 28. jQueryでtxtファイルにデータを書き込むことができません
- 29. Javaでファイルにデータを書き込むことができません
- 30. IE7でzipファイルを書き込むことができません
書き込みファイル以外のどれによって維持されていますか? – WaiLam
@WaiLam、local。私はそれがリモート、PHP/ASP(サーバの設定に応じて)簡単に行うことができますか? –