Лучший способ обработать загрузку файлов через HTTP - PullRequest
3 голосов
/ 12 декабря 2008

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

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

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

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

Ответы [ 8 ]

1 голос
/ 12 декабря 2008

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

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

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

Megaupload

1 голос
/ 12 декабря 2008

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

1 голос
/ 12 декабря 2008

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

1 голос
/ 12 декабря 2008

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

Вы можете

  • Создайте свой собственный элемент управления 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

0 голосов
/ 22 января 2011

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

0 голосов
/ 30 июня 2009

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

0 голосов
/ 30 июня 2009

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

0 голосов
/ 30 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...