ローカルファイルの読み書きを行うためのHTML5実装
最近、htmlページ上にエクスポートするためのボタンがあり、クリックするとドキュメントを構築してローカルファイルシステムに保存するという要件がありました。また、クリックすると、ローカルファイルシステムからファイルを読み込んで、その内容を解析するボタンもあります。
はっきり言って、ローカルファイルシステムからファイルを読み書きする方法というのは、一つです。
このことは、html5以前は、ブラウザがローカルファイルシステムを非常に強力に保護しており、サンドボックスと呼ばれる仕組み、要するにjsが直接操作できないようになっていたようで、非常に怖いことでした。で、今回は、あるファイルを読むには、そのファイルをサーバーにアップロードし、サーバーがそのファイルを読んで解析し、解析結果をクライアントに返すという仕組みになっています。ファイルを書き込むのは少し簡単で、jsには書き込む方法がないので、サーバーが動的にファイルを生成して、添付ファイルの形でダウンロードするしかない。しかし、これは実は非常に無理がある。なぜなら、ファイルを操作するのはjsエンジンですが、その途中にはサーバーを通す必要があるからです。
html5は、それがファイルシステムAPIのセットを提供し、ファイルの読み取りと書き込みを実現することができます来た、私は好奇心、この需要は非常に一般的かもしれませんが、非常に少数のデモがオンラインで存在します。
ファイルの読み込み
ファイル読み込みに利用するAPIはFileReader、html内の要素は
import torchvision
htmlの要素はとてもシンプルで、まずファイルタイプの入力要素が必要ですが、ここでなぜdisplay:noneなのでしょうか?なぜなら、これはあまりにも醜いからです。
jsのコードです。
$("#import").click(function(){//Click the import button to make files trigger a click event, then finish reading the file.
$("#files").click();
});
function import(){
var selectedFile = document.getElementById("files").files[0];//Get the read File object
var name = selectedFile.name;//read the file name of the selected file
var size = selectedFile.size;//read the size of the selected file
console.log("File name:"+name+"Size:"+size);
var reader = new FileReader();// Here is the core!!! Read operations are done by it.
reader.readAsText(selectedFile);//read the contents of the file
reader.onload = function(){
console.log(this.result);//when the reading is complete will call back to this function, and then the contents of the file is stored in the result. You can manipulate it directly.
};
}
これで、ローカルファイルを読み込む操作は完了です。ActiveXObjectを使うとかなんとか言っているユーザーもいますが、これはIEでしか使えません、今はマイクロソフトもIEに見切りをつけていますので、このような使い方はやめましょう。
ファイルへの書き込み
ファイルの書き込みは若干複雑で、html5にはFileReaderに相当するFileWriterもありますが、こいつは実に使い勝手が悪く、少なくとも私はほとんど一日中調べましたが使えるAPIが見つからず、しかもFileReaderはChrome、FF、Safariで対応可能です。もちろん、あるバージョン以上のものが必要です。しかし、FileWriterはChromeのみ対応しているようです。なんにせよ、動くのはいいことだ。
// First import a js file
<script type="text/JavaScript" src=". /js/FileSaver.js" charset="utf-8"></script>
//add an export element to the html
<input type="button" id="export" value="export"/>
//js file
$("#export).click(function(){
var content = "This is a direct export using html5";
var blob = new Blob([content], {type: "text/plain;charset=utf-8"});
saveAs(blob, "file.txt");//saveAs(blob,filename)
});
今回はHTML5でローカルファイルの読み書きを実現する方法を紹介しましたが、より関連するHTML5のローカルファイルの読み書きの内容は、BinaryDevelopの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください、今後もBinaryDevelopを応援してください!
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
CAPTCHAを生成するHTML5サンプルコード
-
モバイルHTML5開発ツール vconsoleの詳細解説
-
動画下の自動再生プロパティが無効な場合の解決方法(ミュートプロパティを追加する)。
-
携帯電話のHtml5を達成するためにカメラのメソッドを呼び出すには
-
html5で漢字にピンインを付加するプログレスバーコード
-
html5モバイルキーボードのポップアップを片付ける対応
-
左右の高さの差がありすぎる問題を解決するための小型プログラムウォーターフォール
-
キャンバスラバーバンド線引き塗布方法
-
ビデオグリーンスクリーンキーイングのキャンバスピクセルポイントマニピュレーション
-
HTML5でjsonオブジェクトを使用するためのサンプルコード