Загрузка файла более 4 ГБ - PullRequest
9 голосов
/ 31 марта 2009

Я хочу создать веб-приложение ASP.NET, которое позволяет загружать файлы размером до 4 ГБ. Как я могу этого достичь? Я бы предпочел что-то вроде менеджера "Скачать", где я могу возобновить, сделать паузу и т. Д ...

Это возможно? Если да, то с чего мне начать? Я думаю, что asp.net имеет ограничение загрузки 4 Мб или что-то? Я не слишком уверен ..

Пожалуйста, совет.

Приветствия

Ответы [ 7 ]

3 голосов
/ 31 марта 2009

Возможно, вы захотите использовать сторонний компонент для этого.

Вы правы в том, что по умолчанию стандартный элемент управления загрузкой файлов не разрешает ничего, кроме 4 МБ. Вы можете изменить это значение, используя атрибут maxRequestLength раздела конфигурации httpRuntime в web.config. Вам также необходимо изменить атрибут executionTimeout. См. здесь для получения дополнительной информации.

Но до 4 ГБ? Я сомневаюсь, что у вас будет большой успех со стандартным контролем загрузки файлов. Если соединение обрывается, все кончено, и им придется начинать заново. Вы, вероятно, хотите что-то, что может поддерживать соединение и обеспечивать индикатор выполнения и тому подобное.

Посмотрите на такие продукты, как FileUp или EasyAlgo . Поиск в Google должен найти вас достаточно.

2 голосов
/ 31 марта 2009

Вы всегда можете осуществить загрузку файлов самостоятельно, это действительно не так уж сложно, если для утилиты .NET задано некоторое ограничение (хотя на самом деле это не так).

Что касается какого-то менеджера «загрузки», который вы можете возобновить и т. Д., То это просто невозможно, поскольку требует сотрудничества с клиентом, а современные функции загрузки в браузеры просто не такие «умные».

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

1 голос
/ 01 апреля 2009

Вы можете создавать файлы до 4 ГБ в ASP.NET, используя стороннее решение, которое отменяет встроенную проверку запросов. Это будет работать во всех версиях IIS, за исключением интегрированного режима IIS 7, который имеет жесткое ограничение в 2 ГБ.

Большинство загрузчиков не имеют возможности для паузы / возобновления, поэтому вам может не повезти. Google и посмотреть, что вы можете найти. Вам, вероятно, придется использовать Java или ActiveX, чтобы получить эту функциональность.

начальная вилка

Я являюсь автором SlickUpload , одного из первых загрузчиков ASP.NET - он поддерживает загрузку до 4 ГБ. У нас нет поддержки Flash, Silverlight или Java, но в настоящее время мы имеем лучший AJAX-интерфейс, и в будущих версиях появятся богатые интерфейсы апплетов.

1 голос
/ 31 марта 2009

Ограничение в .NET 2.0 составляет 2 ГБ.

Если 3.5, то учтите это в своем web.config, если он у вас есть. он устанавливает максимальный размер файла и время ожидания:

<httpRuntime maxRequestLength="4194304" executionTimeout="2400"/>

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

1 голос
/ 31 марта 2009

В дополнение к ограничениям сервера браузеры также ограничивают размер файла, который может быть отправлен в POST (слегка устаревший: http://www.motobit.com/help/scptutl/pa98.htm).). Именно поэтому многие реализуют решения на основе Flash или Java, которые могут выполнить загрузку «вне диапазона», используя, так сказать, прямой канал на сервер.

0 голосов
/ 31 марта 2009

на filemail.com они использовали Flex-клиент, хотя сайт основан на asp.net. Так что в целом я думаю, что "все" используют клиент типа active-x для этой задачи.

0 голосов
/ 31 марта 2009

Предел загрузки файла обычно определяется файлом конфигурации сервера. Извините, я парень из PHP, поэтому я не уверен в asp.net, но для нашего сервера у нас есть файл php.ini с upload_max_filesize, который устанавливает допустимый общий размер.

Для менеджера закачки вам, скорее всего, понадобится что-то, построенное с использованием Java Bean-компонентов, плагина на основе Java, который вы можете приобрести, или swfuploader .

Мы использовали swfuploader с большим успехом на многих сайтах.

...