Есть ли разумный способ разрешить пользователям веб-приложения загружать большие файлы? Я ищу что-то другое, кроме встроенного диалогового окна загрузки браузера - требования заключаются в том, что пользователь инициирует загрузку из браузера, а затем какое-то другое приложение вступает во владение, загружает файл в фоновом режиме и не выходит, когда браузер закрыто. Возможно, он будет работать через http, ftp или даже через bittorrent. Было бы неплохо иметь независимость от платформы, но меня больше всего интересует Windows.
Загрузка больших файлов в фоновом режиме, инициированная из браузера
Ответы (5)
Это может быть подходящим использованием для BitTorrent. Он работает с помощью отдельной программы (в большинстве браузеров) и будет работать даже после закрытия браузера. Не идеальное сочетание, но отвечает большинству ваших требований.
Может быть, вам подойдет BITS?
Фоновая интеллектуальная служба передачи Назначение
Фоновая интеллектуальная служба передачи (BITS) передает файлы (загружает или выгружает) между клиентом и сервером и предоставляет информацию о ходе передачи, связанную с передачей. Вы также можете загружать файлы с пира.
Где применимо
Используйте BITS для приложений, которым необходимо:
Асинхронно передавать файлы на переднем плане или в фоновом режиме. Сохраняйте скорость отклика других сетевых приложений. Автоматически возобновлять передачу файлов после отключения сети и перезагрузки компьютера. Аудитория разработчиков
BITS предназначен для разработчиков C и C++.
только Windows
Попробуйте freeDownloadManager. Он интегрируется с IE и Firefox.
Взгляните на это: http://msdn.microsoft.com/en-us/library/aa753618(VS.85).aspx
Но это только для IE.
Другой способ — написать BandObject для IE, который подключается ко всем ссылкам и запускает ваше приложение. http://www.codeproject.com/KB/shell/dotnetbandobjects.aspx
В зависимости от того, насколько велики файлы, почти все веб-браузеры имеют встроенные менеджеры загрузки. Просто поместите ссылку на файл, и браузер вступит в силу, когда пользователь щелкнет.. Вы можете просто порекомендовать людям установить менеджер загрузки перед загрузкой файла, ссылка на рекомендуемый бесплатный клиент для Windows/Linux/OS X.
В зависимости от того, насколько велики файлы, Bittorrent может быть вариантом. Вы бы предложили файл .torrent
, когда люди открывают их в отдельном клиенте загрузки, который отделен от браузера.
Есть недостатки, в основном в зависимости от вашей целевой аудитории:
- Bittorrent редко разрешен в корпоративных или школьных сетях.
- его может быть сложно использовать (поскольку это новая концепция для многих людей).. например, если у кого-то не установлен торрент-клиент, он получает крошечный файл, который не может открыть, что может сбивать с толку
- проблемы с NAT/переадресацией портов/брандмауэрами довольно распространены
- Вы должны использовать запустить торрент-трекер и раздать файл
... но есть и преимущества - в основном снижение использования полосы пропускания на сервере, поскольку люди загружают также файл.