こんにちわ。
職人見習いの小森です。

今回は、HTML5のファイル読み込みをについてまとめます。

○index.html



id="fileinfo"
id="Contents"

accept=”text/*”

上記を付けて、ファイル選択ボタンはテキストのみ選択可としています。

○file.js

window.addEventListener("load",function(){
    if(!window.file){
        ele.innerHTML = "File APIが使用できません"
        return;
    }
    var ele = document.getElementById("fileinfo");

    document.getElementById("read").addEventListner("click",function(){
       var textFile = document.getElementById("filedata").files[0];

       if(textFile.type.indexOf("text/") != 0 ){
          ele.innerHTML += "ファイルはテキストではない"; 
          return;
       }

       var reader;
       reader = new FileReader();

       reader.onload = function(evt){
          var text = evt.target.result;
          document.getElementById("Contents").textContent = text;
       }

       reader.onerror = function(evt){
          var errorNo = evt.target.error.code;
          ele.innerHTML += "エラー:"+errorNo;
       }


       reader.onprogress = function(evt){
         //読み込み作業中のイベント
       }

       reader.onloadend = function(evt){
        //読み込み完了時のイベント
       }

    reader.readAsText(textFile,"utf-8");

    },true);

},true);

readAsTextメソッドは、非同期でファイルの読み込みを行います。
そのため、ファイルの読み込みが完了してから処理したい場合などは、onloadendメソッドに読み込み完了後の処理を記述します。

読み込み処理中にエラーが発生した場合、onerrorメソッドが呼び出されエラーコードが表示されます。

※この記事は、なかの人(spitz8008)が書いています。