웹에서 JS 언어만으로 로컬에 저장된 텍스트 파일을 읽어 오는 코드를 정리한 글이다. 먼저 아래는 예제 코드 실행을 위한 DOM 구성에 대한 코드이다.
...
Open 버튼을 클릭하면 텍스트 파일을 선택할 수 있는 대화상자가 표시되도록 하며, 여기서 읽고자 하는 파일을 사용자가 선택하면 id가 output인 div에 텍스트 파일의 내용을 출력한다. 이에 대한 코드는 아래와 같다.
function openTextFile() { var input = document.createElement("input"); input.type = "file"; input.accept = "text/plain"; // 확장자가 xxx, yyy 일때, ".xxx, .yyy" input.onchange = function (event) { processFile(event.target.files[0]); }; input.click(); } function processFile(file) { var reader = new FileReader(); reader.onload = function () { output.innerText = reader.result; }; reader.readAsText(file, /* optional */ "euc-kr"); }
openTextFile은 Open 버튼 클릭시 호출하는 함수이다. processFile은 openTextFile에서 호출되는 함수로 선택된 파일을 읽어 div에 그 내용을 출력한다. IE와 Chrome 모두에서 정상적으로 작동하는 것을 확인했다.
최고이십니다. *^^* 도움이 되었습니다. 엄청요
알려주신 예제로 잘 활용하였습니다.
그런데 pdf파일에서 text만 불러와서 보여주는 방법을 없을지요?
안녕하세요, 관련 자료를 잠깐 구글링해보니..
자바스크립트만으로 pdf 파일을 원래 형태 그대로 보여주는 라이브러리(https://mozilla.github.io/pdf.js/web/viewer.html)도 존재하네요.
그렇다면 text만을 뽑아내는 라이브러리도 분명 존재할거라 생각됩니다.
건투를~~~ 빕니당나귀!
매우 유익한 자료 감사 드리며 한가지 문의 드립니다…
제가 구현 하고 싶은 내용은 파일을 선택하는게 아니고
onclick=fun(DB 에서 읽어온 전체경로_파일명) 을 전달하여 처리하고 싶은데
초짜라 쉽지가 않네요…도움 부탁 드립니다
안녕하세요, 김형준입니다.
로컬 파일을 웹에서 읽는 것은 사용자가 직접 자신의 손가락이든.. 발가락이든 마우스(터치 포함) 또는 키보드를 통해 선택하는 행위를 필요로 한다가.. 현재의 웹 보안정책입니다..
즉, 문의하신것처럼 단순히 파일경로를 문자열로 지정하는 것은 보안정책에 위배되는 것이므로 불가능합니다람쥐..
빠른 답변 감사 드리며 덕분에 많은도움 되었습니다…감사합니다
좋은 정보 감사합니다! 궁금한게 있습니다. read한 file을 split하여서 출력도 할 수 있나요? output값에 split해도 안되네요..
네, 웹에서 파일을 생성할 수 있습니다 !
안녕하세요! 작성해주신 코드를 참고하여 text를 읽어왔고
읽어온 text파일에 적힌 내용들을 substring으로 잘라
테이블의 각 tr과 td에 원하는대로 넣었는데요.
(페이징 처리도 하여 총 75페이지에 잘 들어갔습니다.)
다음으로 제가 해보고 싶은 것은 하나의 파일이 아닌
여러개의 text 파일을 열어 데이터를 입력하는 것입니다.
즉, 1개의 textfile만 넣던 것을(ex. 2019년 10월 14일 파일만)
2019년10월14일 text파일, 2019년10월15일 text파일을 동시에
받아오고 싶은데요.
multiple을 사용하여 파일 다중 선택까지는 가능하게 하였으나
다중 선택한 파일들을 읽어오는데 어려움을 겪고 있습니다.
혹시 도움 주실 수 있을까하여 이렇게 댓글을 남깁니다 ㅎㅎ ㅠㅠ