HTMLで書き込んだテキストデータをファイルに書き込むには
データやログをファイルなどに書き込むには、
File APIというものを使わなければいけないと言われ調べてみましたが
イマイチわかりませんでした。
したいこと
JSでHTMLから書き込まれた文章を一度テキスト.txtにログとして保存してそこから更に一度保存した内容を取り出してHTMLで表示させたい。
図:HTML(書き込み)>JS処理・ログ制作から>HTML出力。
課題{
1:HTMLから入力してテキストデータの情報をJSに回して課題2に繋げる。(参考中)
2:JSでテキストデータをファイルに書き込む**(成功)**
3:ファイルに書き込まれた情報をHTMLに表示。(参考中)
条件
File APIを使わなければならない
参考にしたサイトFile APIについて、
テキストデータをファイルに書き込む方法
ファイルに書き込むことはできましたがダウンロードができてファイルを開いた動作でした。
js
1<a id="btn" download="sample.txt">ダウンロード</a> 2 3<script type="text/javascript"> 4 5const btn = document.getElementById('btn'); 6 7btn.addEventListener('click', function() { 8 const blob = new Blob(['こんにちは'], { "type" : "text/plain" }); 9 10 btn.href = window.URL.createObjectURL(blob); 11}) 12 13</script>
とても参考になったのですが、
HTML上に表示できないのでしょうか。。。
ファイルに書き込んだ文字を再度HTML(テキストエリア)に表示したいです。
ファイルから情報を取り出すことは可能なのでしょうか。
ファイルの中身を出力する方法ではできるらしいのですが、
出力に失敗してしまいました。
html
1<form name="myform"> 2 3 <input name="myfile" type="file" /><br/> 4 <textarea name="output" cols="80" rows="10"></textarea> 5 6</form>
js
1var form = document.forms.myform; 2 3form.myfile.addEventListener( 'change', function(e) { 4 5 var result = e.target.files[0]; 6 7 //FileReaderのインスタンスを作成する 8 var reader = new FileReader(); 9 10 //読み込んだファイルの中身を取得する 11 reader.readAsText( result ); 12 13 //ファイルの中身を取得後に処理を行う 14 reader.addEventListener( 'load', function() { 15 16 //ファイルの中身をtextarea内に表示する 17 form.output.textContent = reader.result; 18 }) 19 20})
そもそもFile APIとはなんなのでしょうか、
JSに依存する言語なのでしょうか、それともJSにおける方式や名称なのでしょうか、
すくなくても、「ファイルの読み込み」に対応させることだ、ということは理解できました。
まだまだ勉強しなければならない部分が多いですが
私に現段階で認識違いや誤解している部分があれば指摘してくれると本当に嬉しいです。