2009-03-30 2 views
7

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

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

Прошу совета.

Приветствия

ответ

1

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

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

начинает пробку

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

+0

Могу ли я загрузить несколько файлов с помощью SlickUpload? – Imageree

+0

Imageree: вы можете загрузить несколько файлов с помощью этого элемента управления, но вы можете выбрать только один за раз. Таким образом, чтобы загрузить 5 файлов, вы выбираете пять вариантов. Если вы хотите добавить несколько выделений из одного диалогового окна, вам необходимо изучить Flash, Java или Silverlight. – pearcewg

+0

Попробуйте последнюю версию SlickUpload. В версии 6 добавлена ​​поддержка нескольких файлов и поддержка перетаскивания для браузеров, которые ее поддерживают, используя API файлов HTML5. В настоящее время это последние версии Chrome, Firefox и Safari. IE 9 не поддерживает File API, но похоже, что IE 10 будет. –

0

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

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

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

1

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

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

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

+0

Вместо Java вы могли бы, конечно же, использовать Flash или Silverlight, но по сути вы правы: файл должен управляться с клиентской стороны, и должны быть загружены только срезы. –

+0

Это хорошо Will Hartung – deebs

1

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

3

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

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

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

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

0

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

1

Предел в .NET 2.0 составляет 2 ГБ.

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

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

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

Смежные вопросы