повесить на элемент обработчик события drop, с помощью DataTransfer() получить получить список дропнутых фаилов и и далее с ними работать ( передавать на сервер или выводить превьюхи в документ) https://developer.mozilla.org/en-US/docs/Web/API/H...
На самом деле не обязательно. Поле input type files из коробки умеет принимат файлы при перетаскивании их на него, т. е. достаточно сделать это поле прозрачным и растянуть на всю ширину и высоту родителя, а дальше тупо ловить событие change на поле.