Fetch를 사용할 때 업로드가 완료된 시기만 확인할 수 있으므로 업로드를 위해 선택한 파일 수(filesToDo)와 업로드를 완료한 파일 수(filesDone)만 확인할 수 있습니다. 또한 #progress 바 요소에 대한 참조를 유지하여 신속하게 업데이트할 수 있습니다. 이제 진행 상황을 관리하기 위한 몇 가지 함수를 만들어 보겠습니다: 자동 제출을 하지 않을 경우 파일을 성공적으로 선택한 경우 사용자에게 표시가 있어야 합니다. 또는 파일 드롭)을 사용하여 드롭 앤 드래오버 이벤트에 대한 이벤트 처리기를 정의합니다. 이러한 단계는 예제 코드 조각을 포함하여 아래에 설명되어 있습니다. 전체 소스 코드는 MDN의 끌어서 놓기 리포지토리에서 사용할 수 있습니다(끌어오기 요청 및/또는 문제 환영). 우리의 열 예제 는 장소에 드롭 이벤트 없이 많은 일을 하지 않습니다., 하지만 우리가 그렇게 하기 전에, 즉각적인 개선 각 열에서 `오버` 클래스를 제거 하는 dragend를 사용 하는: 파이어 폭스에서 데모 페이지를 확인 하시기 바랍니다, 크롬, 또는 오페라 (드래그 앤 드롭 지원 없음). 파일을 다운로드하여 코드를 검사할 수도 있습니다. 이것은 기본적으로 IE 9에 대 한. 이 경우 (isAdvancedUpload = false), 브라우저는 드래그 앤 드롭 파일 업로드를 지원하지 않으며 양식은 입력 [type=»파일»]에만 의존하기 때문에 드래그 앤 드링크 된 파일을 수집 할 필요가 없습니다. 이것은 그것을 할 수있는 «DTHML»HTML5 방법입니다. 일반 양식 입력 (리카르도 토마시가 지적 한대로 만 읽기). 그런 다음 파일을 드래그하면 양식에 첨부됩니다.

이렇게 하려면 작업 페이지를 수정하여 이러한 방식으로 업로드한 파일을 수락해야 합니다. 입력을 통해 여러 파일을 삭제하는 것은 이미 사파리와 파이어 폭스에서 작동합니다. DnD를 사용하는 많은 앱은 DnD없이 가난한 경험을 할 것입니다. 예를 들어 조각이 움직이지 않는 체스 게임을 상상해 보십시오. 이런! 브라우저 지원은 상당히 완전하지만 브라우저가 DnD(또는 해당 문제에 대한 HTML5 기능)를 구현하는지 여부를 결정하는 것은 성능이 저하되는 솔루션을 제공하는 데 중요합니다. DnD를 사용할 수 없는 경우 해당 라이브러리 대체를 발생하여 작동하는 앱을 유지 관리합니다. 파일을 드롭 존에 놓을 때 드래그한 모든 파일이 포함된 FileList 개체 형식인 dataTransfer.files 개체를 얻습니다.