Загрузка файла более 4 ГБ

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

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

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

Ваше здоровье


person Community    schedule 30.03.2009    source источник


Ответы (7)


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

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

начать подключение

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

person Chris Hynes    schedule 31.03.2009
comment
Могу ли я загрузить несколько файлов с помощью SlickUpload? - person Imageree; 08.09.2010
comment
Imageree: с помощью этого элемента управления можно загружать несколько файлов, но за один раз можно выбрать только один. Таким образом, чтобы загрузить 5 файлов, вы делаете пять выборов. Если вам нужна загрузка с множественным выбором из одного диалогового окна, вам нужно изучить Flash, Java или Silverlight. - person pearcewg; 23.06.2011
comment
Попробуйте последнюю версию SlickUpload. В версии 6 добавлен выбор нескольких файлов и поддержка перетаскивания для браузеров, которые это поддерживают, с использованием файлового API HTML5. В настоящее время это последние версии Chrome, Firefox и Safari. IE 9 не поддерживает File API, но похоже, что IE 10 будет. - person Chris Hynes; 22.08.2011
comment
Могу ли я загрузить файл размером до 4 ГБ? - person dilipkumar1007; 22.04.2014

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

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

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

Ознакомьтесь с такими продуктами, как FileUp или EasyAlgo. Поиск Google должен найти вас много.

person Damovisa    schedule 30.03.2009

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

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

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

person Will Hartung    schedule 30.03.2009
comment
Вместо Java вы, конечно, также можете использовать Flash или Silverlight, но по сути вы правы: файл должен управляться на стороне клиента, и загружать нужно только фрагменты. - person Michael Stum; 31.03.2009

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

person Jarret Hardie    schedule 30.03.2009

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

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

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

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

person Ash Machine    schedule 31.03.2009

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

Для менеджера загрузки вам, скорее всего, понадобится что-то, созданное с помощью java net beans, подключаемый модуль на основе java, который вы можете приобрести, или swfuploader.

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

person jerebear    schedule 30.03.2009

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

person ThorHalvor    schedule 30.03.2009