본문 바로가기

자바스크립트

File API를 활용한 간편한 로컬 텍스트 파일 읽기 예제

반응형

1. 준비사항

  • 텍스트 파일(예: sample.txt)을 준비합니다. 내용은 간단한 텍스트로 작성해 두시면 됩니다.
  • HTML, JavaScript에 대한 기본 지식
  • 파일을 직접 선택해 내용을 표시하기 위한 HTML 코드 작성

2. 코드 (주석 포함)

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>File API로 로컬 파일 읽기</title>
</head>
<body>
    <h2>File API를 사용한 로컬 파일 읽기</h2>
    <input type="file" id="fileInput" />
    <button onclick="loadFile()">파일 불러오기</button>
    <div id="fileContent">
        <p>선택한 파일의 내용이 여기에 표시됩니다.</p>
    </div>

    <script>
        // 파일 불러오기 함수 정의
        function loadFile() {
            // 파일 입력 요소에서 파일 가져오기
            const fileInput = document.getElementById('fileInput');
            const file = fileInput.files[0]; // 첫 번째 파일 선택

            if (file) {
                // FileReader 객체 생성
                const reader = new FileReader();

                // 파일을 텍스트로 읽기
                reader.onload = function(e) {
                    // 파일 내용 출력
                    document.getElementById('fileContent').innerHTML = `<p>${e.target.result}</p>`;
                };

                // 파일 읽기 시작
                reader.readAsText(file);
            } else {
                document.getElementById('fileContent').innerHTML = `<p>파일을 선택해주세요.</p>`;
            }
        }
    </script>
</body>
</html>

3. 주요 기능 설명 및 흐름

  • loadFile() 함수: 파일을 불러오기 위해 버튼 클릭 시 호출됩니다.
  • File Input 요소: 사용자가 직접 파일을 선택할 수 있는 <input type="file"> 요소입니다. 이곳에서 선택한 파일이 JavaScript로 전달됩니다.
  • FileReader 객체 생성: JavaScript의 FileReader 객체를 사용하여 파일을 텍스트 형식으로 읽어 옵니다.
  • reader.onload 이벤트: 파일이 성공적으로 읽혀질 경우 onload 이벤트가 트리거되며, 파일의 내용을 <div id="fileContent"> 영역에 표시합니다.
  • 오류 처리: 파일이 선택되지 않았을 경우 메시지를 표시하여 사용자가 파일을 선택하도록 안내합니다.

4. 결과 미리보기

  • "파일 불러오기" 버튼을 클릭하면 sample.txt 파일의 내용이 <div id="fileContent"> 영역에 표시됩니다.
  • 파일이 선택되지 않았거나 읽기 오류가 발생하면 경고 메시지가 나타납니다.

5. 추가 팁 및 주의사항

  • 텍스트 형식 제한: 이 예제는 텍스트 파일을 읽는 데 적합합니다. 다른 파일 형식을 사용할 경우 FileReader.readAsDataURL 등의 메서드를 고려하세요.
  • 파일 선택 이벤트: 파일을 선택하는 input 요소에 change 이벤트 리스너를 추가하면 버튼 클릭 없이 파일 선택 시 자동으로 파일을 읽도록 구현할 수도 있습니다.
  • 보안 문제: File API는 보안상의 이유로 로컬 파일을 웹 페이지가 자동으로 접근하지 못하게 합니다. 사용자가 파일을 직접 선택해야 한다는 점을 참고하세요.
반응형