Есть ли разумный способ разрешить пользователям веб-приложения загружать большие файлы? Я ищу что-то другое, кроме встроенного диалогового окна загрузки браузера - требования заключаются в том, что пользователь инициирует загрузку из браузера, а затем какое-то другое приложение вступает во владение, загружает файл в фоновом режиме и не выходит, когда браузер закрыто. Возможно, он будет работать через http, ftp или даже через bittorrent. Было бы неплохо иметь независимость от платформы, но меня больше всего интересует Windows.
Вопрос
Загрузка больших файлов в фоновом режиме, инициированная из браузера
Ответы
Ответ 1 · рейтинг 3 · Vegard Larsen
Это может быть подходящим использованием для BitTorrent. Он работает с помощью отдельной программы (в большинстве браузеров) и будет работать даже после закрытия браузера. Не идеальное сочетание, но отвечает большинству ваших требований.
Ответ 2 · рейтинг 2 · GvS
Может быть, вам подойдет BITS?
Фоновая интеллектуальная служба передачи Назначение
Фоновая интеллектуальная служба передачи (BITS) передает файлы (загружает или выгружает) между клиентом и сервером и предоставляет информацию о ходе передачи, связанную с передачей. Вы также можете загружать файлы с пира.
Где применимо
Используйте BITS для приложений, которым необходимо:
Асинхронно передавать файлы на переднем плане или в фоновом режиме. Сохраняйте скорость отклика других сетевых приложений. Автоматически возобновлять передачу файлов после отключения сети и перезагрузки компьютера. Аудитория разработчиков
BITS предназначен для разработчиков C и C++.
только Windows
Ответ 3 · Alexandre
Попробуйте freeDownloadManager. Он интегрируется с IE и Firefox.
Ответ 4 · Mikael Söderström
Взгляните на это: http://msdn.microsoft.com/en-us/library/aa753618(VS.85).aspx
Но это только для IE.
Другой способ - написать BandObject для IE, который подключается ко всем ссылкам и запускает ваше приложение. http://www.codeproject.com/KB/shell/dotnetbandobjects.aspx
Ответ 5 · dbr
В зависимости от того, насколько велики файлы, почти все веб-браузеры имеют встроенные менеджеры загрузки. Просто поместите ссылку на файл, и браузер вступит в силу, когда пользователь щелкнет.. Вы можете просто порекомендовать людям установить менеджер загрузки перед загрузкой файла, ссылка на рекомендуемый бесплатный клиент для Windows/Linux/OS X.
В зависимости от того, насколько велики файлы, Bittorrent может быть вариантом. Вы бы предложили файл .torrent, когда люди открывают их в отдельном клиенте загрузки, который отделен от браузера.
Есть недостатки, в основном в зависимости от вашей целевой аудитории:
- Bittorrent редко разрешен в корпоративных или школьных сетях.
- его может быть сложно использовать (поскольку это новая концепция для многих людей).. например, если у кого-то не установлен торрент-клиент, он получает крошечный файл, который не может открыть, что может сбивать с толку
- проблемы с NAT/переадресацией портов/брандмауэрами довольно распространены
- Вы должны использовать запустить торрент-трекер и раздать файл
... но есть и преимущества - в основном снижение использования полосы пропускания на сервере, поскольку люди загружают также файл.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Ajax-запрос на загрузку файла excel показывает мне усеченный ответ
- Чтобы обновить UIProgressView для загрузки нескольких файлов (как использовать делегата)?
- Предоставление файлов из службы через приложение rails
- Сервер Node js и инструмент Apache ab: неожиданное поведение
- Как защитить запросы POST на нескольких серверах, чтобы сделать их временно идемпотентными?
- Метка состояния ошибки http Tomcat отличается