자바스크립트 Local Storage를 이용한 파일 다운로드 기능 구현

오늘은 웹 애플리케이션에서 파일 다운로드 기능을 구현하는 방법에 대해 알아보겠습니다. 이 기능을 구현하기 위해 자바스크립트의 Local Storage를 사용하여 파일 데이터를 저장하고 다운로드하는 방법을 살펴보겠습니다.

Local Storage란?

Local Storage는 웹 브라우저에 데이터를 저장하는 기능으로, 사용자의 로컬 컴퓨터에 작은 데이터를 저장할 수 있습니다. 이를 사용하여 파일 데이터를 저장하고 다운로드할 수 있습니다.

파일 다운로드 기능 구현하기

1. 파일 데이터 저장하기

먼저, 파일 데이터를 Local Storage에 저장하는 방법을 알아보겠습니다. 예를 들어, 사용자가 업로드한 파일을 Local Storage에 저장하고 다운로드할 수 있는 기능을 구현해보겠습니다.

// 파일 업로드 이벤트 핸들러
const handleFileUpload = (event) => {
  const file = event.target.files[0];
  const reader = new FileReader();

  reader.onload = (event) => {
    // 파일 데이터를 Local Storage에 저장
    localStorage.setItem('fileData', event.target.result);
  };

  reader.readAsDataURL(file);
};

위의 코드는 파일 업로드 이벤트 핸들러를 정의하는 것입니다. 사용자가 파일을 업로드하면, 해당 파일을 읽어들여 FileReader를 사용해 파일 데이터를 읽고, 이를 Local Storage에 저장합니다.

2. 파일 다운로드하기

이제 저장된 파일 데이터를 다운로드하는 방법을 살펴보겠습니다. 파일을 다운로드하기 위해 다음과 같은 코드를 사용할 수 있습니다.

// 파일 다운로드 함수
const downloadFile = () => {
  const fileData = localStorage.getItem('fileData');
  const fileName = 'downloaded_file.txt';

  const anchorElement = document.createElement('a');
  anchorElement.href = fileData;
  anchorElement.download = fileName;
  anchorElement.click();
};

위의 코드는 파일 다운로드를 실행하는 함수를 정의하는 것입니다. 해당 함수에서는 Local Storage에서 파일 데이터를 가져와 다운로드할 수 있는 방식으로 처리합니다. 파일 이름은 ‘downloaded_file.txt’로 정의되어 있으며, 필요한 경우 파일 확장자를 변경하실 수 있습니다.

3. 사용자 인터페이스 연결하기

마지막으로, 파일 업로드와 다운로드 기능을 사용자 인터페이스와 연결하는 방법을 알아보겠습니다. 예를 들어, 파일 업로드 버튼과 파일 다운로드 버튼을 각각 ID로 참조하여 다음과 같이 코드를 작성할 수 있습니다.

<input type="file" id="fileUpload" />
<button id="downloadButton">파일 다운로드</button>

<script>
  const fileUploadElement = document.getElementById('fileUpload');
  const downloadButtonElement = document.getElementById('downloadButton');

  fileUploadElement.addEventListener('change', handleFileUpload);
  downloadButtonElement.addEventListener('click', downloadFile);
</script>

위의 코드는 파일 업로드와 다운로드 버튼을 HTML 요소에 연결하는 방법입니다. 파일 업로드 버튼의 change 이벤트를 감지하여 파일 업로드 이벤트 핸들러를 호출하고, 파일 다운로드 버튼을 클릭하면 downloadFile 함수가 실행되어 파일을 다운로드할 수 있습니다.

마무리

이와 같이 자바스크립트 Local Storage를 사용하여 파일 데이터를 저장하고 다운로드하는 기능을 구현할 수 있습니다. 이를 활용하면 웹 애플리케이션에서 파일 다운로드 기능을 구현하는 데 유용하게 사용할 수 있습니다.

#javascript #localstorage