2014-11-06 2 views
3

내 프로젝트에서 FileReader 기능을 실행하려고 시도하지만 pas.Mon 프로젝트 만 작동하므로 디렉토리의 모든 파일을 나열합니다. 그것은 모두 작동합니다. 그러나 목록에서 파일을 선택하면 (필자의 파일은 로컬 임), 이해가 안되는 오류가 발생합니다.HTML5 FileReader 문제

캐치하지 못함 TypeError : 'FileReader'에서 'readAsText'를 실행하지 못했습니다. 인수가 아닙니다. 입방체.

GetFileName function (fs) { 
     var target = event.target || event.srcElement; 

     var childs = target.parentNode.childNodes; 
     {for (i = 0; i ++; i <childs.length) 
         if (target == childs [i]) break; 
     } 

     console.log (i); // Index li 
     console.log (event.target.innerHTML); // li value 

     filename = "~/Downloads/snippets" + event.target.innerHTML; 

var fr = new FileReader(); 
fr.onload = function (e) { 
     console.log (e.target.result); 
}; 
fr.readAsText (filename); 
} 

사람이 작동하지 않습니다 어떤 생각을 가지고 있습니까 : 여기

내 코드?

도움을 주셔서 감사합니다. 오히려 FileReaderreadAsText 기능에 의해 예상됩니다 개체보다는 문자열입니다

filename = "~/Downloads/snippets" + event.target.innerHTML; 

... :

+2

오류가 명확 해 보입니다. 'filename'을 피드에 넣을 수 없습니다. 그것은 파일이나'File' 객체의'Blob' 표현을 기대합니다. – Xan

+0

나는 어떻게 당신이 파일을 열거하고 있는지 생각해 본다. – Xan

답변

7

나는 문제가 당신의 filename 변수가 설정되어 있는지 생각합니다. 대신이 같은

시도 뭔가 "fileInputElement는"유형 file의 HTML <input> 요소의 ID입니다

var fileInputElement = document.getElementById("fileInputElement"); 
fr.readAsText(fileInputElement.files[0]); 

.

이것은 사용자가하고있는 것과 정확히 일치하지 않을 수 있지만 JavaScript와 HTML을 더 많이 보지 않고는 쉽게 알 수 없습니다.