2010-08-24 1 views
1

У меня есть веб-страница, где пользователи могут создать запись базы данных и выбрать файл, который они хотят загрузить на сервер базы данных. эти файлы могут быть большими, например, 100 МБ.ASP.NET Загрузка файлов в фоновом режиме (BITS/AJAX?)

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

Является ли BITS способом для этого? Или это только для разработки Fatclient? Любые хорошие трубачи ?

Если BITS не подходит, какие у меня варианты? Ajax-вызов услуг с файлом?

+0

Кажется, что ajax не разрешает размещать файлы, полагая, что единственная загрузка будет позволять пользователю ждать (с некоторым индикатором выполнения) до завершения загрузки. – Ivo

+0

Вы можете загрузить, когда пользователь находится на странице, но пользователь может выполнять другие задачи, пока они ждут. Вот где находятся компоненты загрузки ajax. Элемент Valums, который я упоминал, создает скрытый iframe на странице, и поэтому загрузка происходит там. Там пользователь может делать другие действия на странице (подумайте GMail). –

ответ

1

Если вы, говоря «они могут продолжать делать другие вещи», означают, что они могут выполнять другие запросы Ajax на одной и той же веб-странице (т. Е. Не перемещаться от нее), вы можете выполнить это с помощью любых флеш-основанных uploader (SWFUpload является одним из many). Это не требует ничего, кроме некоторого JavaScript, <input type="file"> и встроенного Flash-загрузчика.

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

+0

С помощью «Делать другие вещи» Я имею в виду пропустить indead – Ivo

+0

Итак, вы хотите, чтобы пользователь мог начать загрузку на вашей веб-странице, а затем перенести на www.cnn.com в адресную строку и ожидать, что загрузка продолжит? Будет ли пользователь перемещаться с страницы загрузки на другую страницу вашего веб-сайта или cnn.com, не имеет значения; перемещение от страницы загрузки важно, и что остановит загрузку Flash-загрузчика. –

0

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

Возможно, вы захотите рассмотреть вопрос об управлении загрузкой Andrew Valums AJAX (http://valums.com/ajax-upload/) или Uploadify (http://www.uploadify.com/). Это оба элемента управления jQuery AJAX (и для загрузки требуется Flash). Я работаю с jQuery для разработки веб-приложений, поэтому я частично отношусь к этим элементам управления. Я использовал контроль над Valums для нескольких проектов, и он работает очень хорошо. Я не использовал загрузку в фактическом производственном приложении из-за требования Flash (но это выглядит очень хорошо). Я уверен, что есть другие инструменты загрузки AJAX для других фреймворков JavaScript.

Надеюсь, это поможет!

0

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