Подтвердить что ты не робот

Лучший компонент загрузки без флэш-памяти для веб-приложений?

Мне нужны рекомендации для загрузки сценариев/компонентов. Мои критерии:

  • Без вспышки
  • Обычный Javascript ok, jquery ok
  • Должен предоставить индикатор выполнения (обновленный, например, от ajax-вызова).

Вероятно, это не актуально, но я использую ASP.NET MVC на стороне сервера.

Спасибо

UPDATE Да, я знаю, что для этого должен быть компонент на стороне сервера, но я могу это предоставить. Меня больше интересуют сценарии на стороне клиента. (Возможно, некоторые решения будут привязаны к их последствиям на стороне сервера, хотя я не знаю)

Просто уточнить - это не обязательно должно быть .net. Я рад использовать компонент, который поставляется только с (напр.) Скриптами на стороне сервера PHP, а также для моего собственного .net.


Спасибо за все ответы - там очень полезная информация. В конце концов я принял "загрузчик AJAX" - он не соответствовал требованию барной стойки, но кажется, что ничто не могло (по крайней мере, без вспышки). Я думаю, что я также рассмотрю возможность создания моей собственной, основанной на некоторой информации здесь, - отправлю сообщение, если мне повезет.

4b9b3361

Ответ 1

Точный загрузчик Мы используем это, и это довольно хорошо, стоит попробовать в любом случае.

Изменить: По какой-то причине я думал, что мы использовали Uploadify, оказывается, это было так.

Ответ 2

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

Я не знаю какого-либо готового компонента, но эта статья может быть полезна.

На основе вашего обновления кажется, что вы ищете клиентский компонент, связанный с определенной технологией сервера, и убедитесь, что вы можете легко преобразовать его в .NET. По-моему, это будет непросто. Чтобы реализовать индикатор выполнения, вам нужен прослушиватель загрузки файлов. В Java мне посчастливилось сделать что-то подобное, используя Apache Commons FileUpload и реализовав ProgressListener. В основном я следовал инструкциям на этом article. Помимо слушателя прогресса мне понадобилось внедрить сервлет, который возвратил текущий процент загрузки и на стороне клиента, использовать плагин jQuery-индикатор выполнения, который я регулярно обновляю Ajax, называя процентный сервлет. Это простые бит. Как я уже сказал, вы можете легко реализовать их сами в кратчайшие сроки.

Жесткая часть - это прослушивание прогресса, и это очень сильно отличается, в зависимости от технологии сервера. Поэтому я рекомендую вам начать с этого. Узнайте, как вы можете прослушивать ход загрузки файла с помощью ASP.Net MVC. Статья, связанная выше, является хорошей отправной точкой.

Ответ 3

Мы играли с этим для внутреннего проекта, и я не думаю, что ваши критерии отображения прогресса, отличного от Flash, могут быть выполнены. Причина, по которой пользователи-загрузчики Flash настолько популярны, заключается в том, что JavaScript невероятно ограничен на клиентских веб-браузерах: по соображениям безопасности JavaScript не может получить доступ к файлам на жестком диске клиента (так что не проверяйте длину файла перед загрузкой и без чтения фрагментов самого файла для загрузки), он очень ограничен в отношении того, насколько он может управлять элементами управления <input type='file'> (поскольку в противном случае он мог бы выбирать и загружать файлы самостоятельно без ведома пользователя), и он может загружать только файл как все- ничего POST'ed отправки формы (так что никаких отчетов о прогрессе).

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

Похоже, что что-то вроде AJAX Upload - лучшее, что вы можете сделать.

Ответ 4

Компоненты загрузки Flash в большинстве реализаций JavaScript есть, потому что они предоставляют больший объем информации о файле и его загрузке. который позволяет вам постоянно обеспечивать и создавать рамки событий для индикаторов выполнения. наиболее популярным является, конечно, http://swfupload.org/

Flash имеет доступ к информации о файлах до начала загрузки. используя чистое решение JavaScript, у вас есть доступ к длине потока файлов на сервере, пока весь файл не будет получен полностью и не будет сохранен на жестком диске сервера.

Следующий очень старый классический ASP script предоставляет файл, который ваш javascript мог бы опросить, который бы пока не содержал процент заполненной загрузки, полученной на сервере.

http://www.freeaspupload.net/

Это не классно, он просто хорошо справляется с тем, что он делает. Я еще не видел более современной версии .net.

Ответ 5

Используйте модуль PHP APC, чтобы иметь возможность получить доступ к загрузке. Вот достойная статья о том, как настроить это.

http://www.haughin.com/2007/10/23/php-upload-progress-with-php-52-apc/

Очевидно, для этого требуется PHP, но если это возможно для вас, тогда вы все настроены.

Ответ 6

Попробуйте AsyncFileUpload для веб-приложений asp.net.

Ответ 7

Вы вообще не упоминали о требованиях к цене, поэтому я поставлю контроль Telerik. Я использовал его, и его было довольно легко реализовать. У них есть API-интерфейс на стороне сервера и на стороне клиента, индикаторы выполнения, проверка на стороне клиента и включен Ajax.

Демо-сайт: http://demos.telerik.com/aspnet-ajax/upload/examples/overview/defaultcs.aspx

Ответ 8

Я не думаю, что есть компонент, который соответствует вашим требованиям, потому что, насколько я знаю, каждое решение, обеспечивающее индикатор выполнения, основано на flash.;)

Но, как и TWith2Sugars, я использовал AjaxUpload, и он работает красиво, но не работает.