[javascript] JAX 호출을 사용한 웹페이지의 파일 업로드 및 다운로드

웹 페이지에서 파일 업로드 및 다운로드 기능은 많은 웹 애플리케이션에서 필수적인 부분입니다. JAX(JavaScript + Ajax) 호출을 사용하여 파일 업로드 및 다운로드를 구현하는 방법을 확인해 보겠습니다.

파일 업로드

웹 페이지에서 파일을 업로드하기 위해서는 HTML 폼과 JavaScript를 사용하여 파일을 서버로 전송해야 합니다. 아래는 간단한 파일 업로드 예제 코드입니다.

<form id="fileUploadForm" action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" id="fileInput" name="file">
  <input type="button" value="Upload" onclick="uploadFile()">
</form>

<script>
  function uploadFile() {
    var fileInput = document.getElementById('fileInput');
    var file = fileInput.files[0];
    var formData = new FormData();
    formData.append('file', file);
    
    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/upload', true);
    xhr.send(formData);
  }
</script>

위 코드는 파일을 선택하고 “Upload” 버튼을 클릭하면 uploadFile 함수가 호출되어 XMLHttpRequest를 사용하여 파일을 서버로 업로드합니다.

파일 다운로드

서버에서 파일을 다운로드하기 위해서는 클라이언트 측 JavaScript를 사용하여 서버에 파일을 요청하고 응답을 받아야 합니다. 아래는 파일 다운로드 예제 코드입니다.

<button onclick="downloadFile()">Download</button>

<script>
  function downloadFile() {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', '/download/sample.pdf', true);
    xhr.responseType = 'blob';

    xhr.onload = function() {
      if (xhr.status === 200) {
        var blob = xhr.response;
        var url = window.URL.createObjectURL(blob);
        var a = document.createElement('a');
        a.href = url;
        a.download = 'sample.pdf';
        a.click();
        window.URL.revokeObjectURL(url);
      }
    };

    xhr.send();
  }
</script>

위 코드는 “Download” 버튼을 클릭하면 downloadFile 함수가 호출되어 XMLHttpRequest를 사용하여 파일을 서버에서 다운로드하고, 받은 파일을 클라이언트로 다운로드하게 됩니다.

JAX 호출을 사용하여 웹 페이지에서 파일 업로드 및 다운로드를 구현하는 것은 간단하지만 매우 유용한 방법입니다.

참고 자료