2017-10-10 7 views
0

にユーザーによってアップロードされたファイルを読んだ後:私はJS経由でアップロードされたファイルを読み込み、その後、POSTメソッド</p> <p>HTMLファイル使用して別のページへのそのコンテンツを公開しようとしているWebページ

<div class="sm2 "> 
    <label for="file" class="control-label">Upload</label> 
    <input type="file" name="myfile" multiple="multiple" id="myfile"> 
</div> 

Javaスクリプト:

var $i = $('#myfile'); 
input = $i[0]; 
if (input.files && input.files[0]) { 
    myfile = input.files[0]; 
    fr = new FileReader(); 
    fr.onload = function() { alert(fr.result); }; 
    fr.readAsText(myfile); 
    } 
else { 
    alert("File not selected") 
    } 
$.post("/dc/ajax", 
     { 
      action: "load_mob1", 
      data:fr.result 
      contentType: false, 
     }, 

私は、ファイルが読み込まれる前に、POSTメソッドが呼び出されると思います。 POSTが呼び出される前に、ファイルが読み込まれるまでどのように待つのですか?

ご協力いただきありがとうございます。

答えて

0

が非同期である、あなたが完了するのfr.onloadを待つ必要がfr.resultは、任意のコンテンツ

var $i = $('#myfile'); 
input = $i[0]; 
if (input.files && input.files[0]) { 
    myfile = input.files[0]; 
    fr = new FileReader(); 
    fr.onload = function() { 
     $.post("/dc/ajax", { 
      action: "load_mob1", 
      data: fr.result 
      contentType: false, 
     }); 
     fr.readAsText(myfile); 
    }; 
} else { 
    alert("File not selected") 
} 

を持って前に、これはまた、今何が起こるかを防ぎ、$の.postには、ファイルを選択しなかった場合でも実行されます

1

結果を警告するfr.onloadメソッドの中にpostメソッドを配置してみてください。 fr.readAsTextとして

関連する問題