На днях познакомился с javascript-плагином для загрузки файлов Resumable.js и его код на GitHub-e. Вот появились некоторые соображения по поводу загрузки файлов.
Сама по себе загрузка файлов на сервер не является сложной задачей. Сейчас существует много плагинов, которые позволяют делать загрузку файлов с различными возможностями, такими как: прогресс бар, загрузка многих файлов одновременно, возобновление загрузки, если проблемы с сетью и т.д.
Мне кажется, что при загрузке файлов есть несколько интересных вопросов. Один из таких вопросов это загрузка файлов большого размера (больше 2 ГигаБайт). Пишут, что у браузеров есть ограничения на размер загружаемых файлов.
Используя стандартный способ загрузки в HTML '<input type="file">' (php-пример) пользователь, который загружает большой файл, должен ждать долгое время. Для него не понятно, насколько реально загружен файл, будет ли удачной загрузка, возникнут ли ошибок при загрузке, придется ли начинать загрузку заново. С появлением HTML5 FILE API (пример) можно решить эту проблему, реализовав возможность возобновлять загрузку файлов с того состояние, в котором они были прерваны, а не начинать все с самого начала. Такая возможность есть и у Resumable.js. Есть ограничения на браузеры, в которых доступна эта возможность (Firefox 4+ и Chrome 11+).
Общая идея о том, как это реализовано. Resumable.js разбивает файл на несколько небольших фрагментов (chunk), используя HTML5 FILE API. Затем каждый фрагмент загружается по одному, пока весь файл не будет загружен. Если какой-то из фрагментов файла невозможно загрузить правильно, то этот фрагмент будет загружен повторно.
Resumable.js также позволяет пользователю приостанавливать и возобновлять загрузку без потери состояния. Плагин работает также в случаях, если происходит потеря соединения, если сервер завершает работу или перезапускается.
Продолжение следует =)
Сама по себе загрузка файлов на сервер не является сложной задачей. Сейчас существует много плагинов, которые позволяют делать загрузку файлов с различными возможностями, такими как: прогресс бар, загрузка многих файлов одновременно, возобновление загрузки, если проблемы с сетью и т.д.
Мне кажется, что при загрузке файлов есть несколько интересных вопросов. Один из таких вопросов это загрузка файлов большого размера (больше 2 ГигаБайт). Пишут, что у браузеров есть ограничения на размер загружаемых файлов.
Используя стандартный способ загрузки в HTML '<input type="file">' (php-пример) пользователь, который загружает большой файл, должен ждать долгое время. Для него не понятно, насколько реально загружен файл, будет ли удачной загрузка, возникнут ли ошибок при загрузке, придется ли начинать загрузку заново. С появлением HTML5 FILE API (пример) можно решить эту проблему, реализовав возможность возобновлять загрузку файлов с того состояние, в котором они были прерваны, а не начинать все с самого начала. Такая возможность есть и у Resumable.js. Есть ограничения на браузеры, в которых доступна эта возможность (Firefox 4+ и Chrome 11+).
Общая идея о том, как это реализовано. Resumable.js разбивает файл на несколько небольших фрагментов (chunk), используя HTML5 FILE API. Затем каждый фрагмент загружается по одному, пока весь файл не будет загружен. Если какой-то из фрагментов файла невозможно загрузить правильно, то этот фрагмент будет загружен повторно.
Resumable.js также позволяет пользователю приостанавливать и возобновлять загрузку без потери состояния. Плагин работает также в случаях, если происходит потеря соединения, если сервер завершает работу или перезапускается.
Продолжение следует =)
Комментариев нет:
Отправить комментарий