본문 바로가기
dansoon-Dev/[Javascript]

[Javascript] File Upload Drag&Drop

by 단순데브 2023. 2. 27.
728x90

웹사이트에 파일을 업로드하는 것은 많은 웹 애플리케이션의 일반적인 요구 사항입니다.

사용자가 이 프로세스를 더 쉽게 수행할 수 있는 한 가지 방법은 파일 업로드를 위한 끌어서 놓기 인터페이스를 제공하는 것입니다.

JavaScript로 파일 업로드 끌어서 놓기 인터페이스를 만드는 방법을 살펴보겠습니다.

 

 

1단계: HTML File Input 만들기

 

만들기의 첫 번째 단계 끌어서 놓기 파일 업로드 인터페이스는 HTML File Input 을 만드는 것입니다.

이 요소를 사용하면 사용자가 기존 파일 선택 대화 상자를 사용하여 컴퓨터에서 파일을 선택할 수 있습니다.

Drag & Drop 인터페이스를 사용할 수 없는 사용자를 위해 이 요소를 대안으로 사용할 것입니다.

 

<input type="file" id="fileInput">

 

 

 

2단계: 드롭 영역 요소 생성

 

다음으로, 드롭 영역 요소를 생성해야 합니다.

새 HTML 요소를 만들고 끌어서 놓기 이벤트를 처리하도록 일부 이벤트 핸들러를 설정하여 이를 수행할 수 있습니다.

 

<html>

<div id="dropZone">Drop files here</div>

 

<script>

const dropZone = document.getElementById('dropZone');

dropZone.addEventListener('dragover', (event) => {
  event.preventDefault();
});

dropZone.addEventListener('drop', (event) => {
  event.preventDefault();
  const files = event.dataTransfer.files;
  handleFiles(files);
});

위의 코드에서, 우리는 dropZone이라는 ID로 새로운 div 요소를 만듭니다.

그런 다음 드래그오버 및 드롭 이벤트에 대한 이벤트 리스너를 추가합니다.

드래그오버 이벤트는 브라우저의 기본 동작인 파일을 웹 페이지로 드롭하지 못하도록 방지하는 데 사용됩니다.

삭제 이벤트는 이벤트 개체의 dataTransfer 속성에서 삭제된 파일을 검색하는 데 사용됩니다.

 

 

 

3단계: 업로드된 파일 처리

 

파일이 있으면 적절하게 처리해야 합니다.

이 예에서는 단순히 파일 이름을 콘솔에 기록하지만 실제 애플리케이션에서는 파일에 대해 추가 처리를 수행해야 할 수 있습니다.

 

<script>

function handleFiles(files) {
  for (const file of files) {
    console.log(`File name: ${file.name}`);
  }
}

 

 

 

4단계: 파일 입력 요소 처리

마지막으로, 드래그 앤 드롭 인터페이스를 사용할 수 없는 사용자를 위한 폴백으로 파일 입력 요소를 처리해야 합니다.

const fileInput = document.getElementById('fileInput');

fileInput.addEventListener('change', (event) => {
  const files = event.target.files;
  handleFiles(files);
});

위의 코드에서, 우리는 파일 입력 요소의 변경 이벤트에 대한 이벤트 리스너를 추가한다.

사용자가 파일 선택 대화상자를 사용하여 파일을 선택하면 변경 이벤트가 트리거되며,

이벤트 대상의 파일 속성을 사용하여 선택한 파일을 검색할 수 있습니다.

728x90

'dansoon-Dev > [Javascript]' 카테고리의 다른 글

[Javascript] 클릭시 ImageDownload  (0) 2023.02.15

댓글