2017-10-10 2 views
0

웹 페이지에 사용자가 업로드 한 파일을 읽은 후 데이터를 게시 할 수 없습니다 :내가 JS를 통해 업로드 된 파일을 읽고 다음 POST 방법을</p> <p>HTML 파일을 사용하여 다른 페이지에 자사의 콘텐츠를 게시하려고

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

자바 스크립트 :

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.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도 실행 될 수있는 내용이 전에 완료 fr.onload 기다릴 필요

1

결과를 경고하는 fr.onload 메소드 내에 post 메소드를 넣으십시오. fr.readAsText가 비동기