로컬 디렉토리의 일부 데이터를 구문 분석하려고합니다. 나는 그것을하기 위해 파파 파서를 사용한다. 문제는 텍스트 파일을 변수에 할당 할 수 없다는 것입니다. 이 오류가 발생합니다.Javascript에서 텍스트 데이터를 구문 분석하는 중 오류가 발생했습니다.
Uncaught TypeError : 'FileReader'에서 'readAsText'를 실행하지 못했습니다. 매개 변수 1의 유형이 'Blob'이 아닙니다.
나는 그것에 대해 조사한 결과, HTML 파일 판독기로 파일을 읽을 때 매우 일반적인 오류라는 것을 알았습니다.
내 코드는; x = document.getElementsByName("datafile")[0]
Papa.parse
첫 번째 인자는 문자열이 될 것으로 기대 :
<!doctype html>
<html class="no-js" lang="">
<head>
<script src="https://github.com/mholt/PapaParse/blob/master/papaparse.js"></script>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Parse Example</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
<script src="js/vendor/modernizr-2.8.3.min.js"></script>
</head>
<p>Click the button to Upload .</p>
<button onclick="myFunction()" type="INPUT">Load</button>
<input type="file" name="datafile" size="40">
<script>
var x;
var config = {
delimiter: "", \t // auto-detect
newline: "", \t // auto-detect
header: true,
dynamicTyping: false,
preview: 0,
encoding: "",
worker: false,
comments: false,
step: undefined,
complete: undefined,
error: undefined,
download: true,
skipEmptyLines: false,
chunk: undefined,
fastMode: undefined,
beforeFirstChunk: undefined,
withCredentials: undefined
};
function myFunction() {
x = document.getElementsByName("datafile");
myfile = Papa.parse(x, config);
document.getElementById("demo").innerHTML = myfile;
}
</script>
<p id="demo"></p>
</body>
</html>
처음에는 긴 문서가 있으면 어떻게됩니까? 각 줄을 가져 오기 위해 for 루프가 필요한가요? – bukowski
질문을받지 못했습니다. 설명해 주시겠습니까? – cyberskunk
코드가 작동했습니다. 그러나 내가 원하는 방식은 아닙니다. 나는 어떤 오류도없고 나의 자료는뿐만 아니라 읽히지 않는다. 데이터를 읽은 후에 빈 배열 같은 객체를 얻는다. 나는 선 구조 때문에 그것을 묻는거야? 예를 들어 루프를 다음과 같이 작성해야합니다. i = 0 ~ line_lenght line (i) = x = document.getElementsByName ("datafile") [i] .files [i] – bukowski