Загрузка файлов через веб-страницы с использованием стандартного ввода HTML всегда кажется мне неуклюжей. Если пользователь пытается загрузить большой файл, это может продолжаться бесконечно, и у них не будет очереди, что файл действительно загружается.
Я пытался сделать такие вещи, как предоставление изображения в формате gif, которое представляет собой анимированную графическую панель, но это не дает пользователю никаких указаний на то, сколько загружено. Я даже пытался создать индикатор выполнения с помощью AJAX, но он всегда был уродливым и никогда не работал правильно.
Это было проблемой для многих моих клиентов, и меня часто спрашивают, есть ли способ лучше. Иногда я просто предоставляю им FTP-сайт, чтобы они могли его туда загрузить, но это тоже не практическое решение.
Как вы думаете, как лучше всего обрабатывать загрузку файлов HTTP из HTML? Какие хорошие идеи / примеры вы видели в Интернете?






Существует ряд элементов управления на стороне клиента, которые можно использовать.
Ты можешь
Некоторые случайные ссылки из Google:
http://www.element-it.com/MultiPowUpload.aspx
Существует несколько методов асинхронной передачи файлов с индикатором выполнения по протоколу HTTP, большинство из которых включает Вспышка или XMLHttpRequest.
Я добавлю к этому swfupload. Это загрузчик флеш-памяти с открытым исходным кодом, который может постепенно ухудшаться, если у пользователя нет флеш-памяти.
На самом деле существует только один механизм загрузки через браузер. Однако вы можете нарядить его и сделать более удобным для пользователя, предоставив индикатор выполнения, чтобы показать, что загрузка идет и с какой скоростью.
Обычно это делается путем нацеливания формы загрузки на скрытый iframe и использования вызовов AJAX, чтобы узнать, какая часть файла достигла сервера.
Вот один из примеров:
Если вы используете apache mod_perl2, есть модуль Apache2 :: UploadProgress. Это добавляет идентификатор к HTTP-запросу на загрузку, после чего вы запрашиваете сервер о ходе этой загрузки. Имеет встроенную поддержку для создания индикатора выполнения AJAX во всплывающем окне или на странице, выполняющей загрузку. Если вы хотите создать собственное отображение прогресса, вы можете получить информацию обратно в виде данных XML или JSON.
Утилита YUI Uploader использует загрузчик на основе Flash, хорошо документирован и содержит несколько примеров, которые вы можете попробовать. Я использовал его в нескольких проектах и рекомендую.
Я использую его как довольно простой и полный инструмент. Базовый исходный код хорош, и вы можете легко его настроить при необходимости. Загрузка файла AJAX
Интересно, что никто не упомянул компонент загрузки Аккуратная загрузка от Дин Бреттл, он имеет множество интересных функций и работает также на MONO
Интересно, почему какой-то тролль проголосовал против этого? Я анти-тролль и не вижу ничего плохого в ответе.
не кажется мне ужасно изящным. Он удаляет кнопку, если у них нет javascript или flash. Он не возвращается к управлению загрузкой файлов, как можно было бы ожидать.