В HTML 5 существует 2 способа считать и асинхронно отправить файл на сервер: через объекты File Reader и Form Data. В принципе, именно для загрузки файлов разницы нет, каким способом отправлять файлы на сервер. Если говорить совсем точно, то за отправку файлов несет ответственность объект XMLHttpRequest, а File Reader и Form Data всего лишь позволяют считать файл и «скормить» его XHR. Эти объекты предназначены для разных задач. File Reader предназначен для работы с файлами на стороне браузера. То есть еще до загрузки файла на сервер можно узнать его параметры, такие как вес, тип, дата создания и т. п. Картинки, например, можно сразу показывать пользователю, не загружая их на сервер. Form Data предназначен для создания форм и управления данными форм до загрузки на сервер. А как мы знаем, в формах и присутствует input type=«file», через который до этого момента мы и отправляли файлы. Таким образом можно создать форму, прикрепить к ней файл и через XHR отправить ее на сервер...