Лучший способ обрабатывать загрузку файлов через HTTP

Загрузка файлов через веб-страницы с использованием стандартного ввода HTML всегда кажется мне неуклюжей. Если пользователь пытается загрузить большой файл, это может продолжаться бесконечно, и у них не будет очереди, что файл действительно загружается.

Я пытался сделать такие вещи, как предоставление изображения в формате gif, которое представляет собой анимированную графическую панель, но это не дает пользователю никаких указаний на то, сколько загружено. Я даже пытался создать индикатор выполнения с помощью AJAX, но он всегда был уродливым и никогда не работал правильно.

Это было проблемой для многих моих клиентов, и меня часто спрашивают, есть ли способ лучше. Иногда я просто предоставляю им FTP-сайт, чтобы они могли его туда загрузить, но это тоже не практическое решение.

Как вы думаете, как лучше всего обрабатывать загрузку файлов HTTP из HTML? Какие хорошие идеи / примеры вы видели в Интернете?

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
3
0
2 819
8

Ответы 8

Существует ряд элементов управления на стороне клиента, которые можно использовать.

Ты можешь

  • Создайте свой собственный элемент управления ActiveX. Только Windows / IE
  • Используйте Flash, чтобы ставить файлы в очередь и загружать их по одному на сервер, используя стандартный протокол загрузки файлов.
  • Для загрузки используйте подписанный Java-апплет.
  • Напишите плагин для браузера.

Некоторые случайные ссылки из Google:

http://www.element-it.com/MultiPowUpload.aspx

http://www.codeproject.com/KB/aspnet/FlashUpload.aspx

http://www.dmxzone.com/forum/go/?36564

Существует несколько методов асинхронной передачи файлов с индикатором выполнения по протоколу HTTP, большинство из которых включает Вспышка или XMLHttpRequest.

Я добавлю к этому swfupload. Это загрузчик флеш-памяти с открытым исходным кодом, который может постепенно ухудшаться, если у пользователя нет флеш-памяти.

не кажется мне ужасно изящным. Он удаляет кнопку, если у них нет javascript или flash. Он не возвращается к управлению загрузкой файлов, как можно было бы ожидать.

Martin Murphy 01.10.2009 09:40

На самом деле существует только один механизм загрузки через браузер. Однако вы можете нарядить его и сделать более удобным для пользователя, предоставив индикатор выполнения, чтобы показать, что загрузка идет и с какой скоростью.

Обычно это делается путем нацеливания формы загрузки на скрытый iframe и использования вызовов AJAX, чтобы узнать, какая часть файла достигла сервера.

Вот один из примеров:

Megaupload

Если вы используете apache mod_perl2, есть модуль Apache2 :: UploadProgress. Это добавляет идентификатор к HTTP-запросу на загрузку, после чего вы запрашиваете сервер о ходе этой загрузки. Имеет встроенную поддержку для создания индикатора выполнения AJAX во всплывающем окне или на странице, выполняющей загрузку. Если вы хотите создать собственное отображение прогресса, вы можете получить информацию обратно в виде данных XML или JSON.

Утилита YUI Uploader использует загрузчик на основе Flash, хорошо документирован и содержит несколько примеров, которые вы можете попробовать. Я использовал его в нескольких проектах и ​​рекомендую.

Я использую его как довольно простой и полный инструмент. Базовый исходный код хорош, и вы можете легко его настроить при необходимости. Загрузка файла AJAX

Интересно, что никто не упомянул компонент загрузки Аккуратная загрузка от Дин Бреттл, он имеет множество интересных функций и работает также на MONO

Интересно, почему какой-то тролль проголосовал против этого? Я анти-тролль и не вижу ничего плохого в ответе.

bgmCoder 27.10.2013 08:14

Другие вопросы по теме