Попробуйте использовать File.SAVEAS, но получите ошибку 404, потому что размер большой - PullRequest
1 голос
/ 15 декабря 2010

Я использую asp: fileupload control для загрузки моих файлов изображений.Таким образом, пользователь нажимает на просмотр и выбирает файл и нажимает на загрузку, и в обработчике события кнопки загрузки есть FileUpload.PostedFile.SaveAs () и т. Д.

Все работает отлично.Примите, когда для большого размера файла.например, у меня есть файл (JPG) 5,5 МБ.Когда я пытаюсь загрузить этот файл, я получаю сообщение об ошибке ниже.

Странно то, что я нажимаю кнопку загрузки файла, обработчик событий, я проверяю размер файла.Если (intFileesize

Но странная вещь заключается в том, что я удаляю весь код из обработчика событий Upload для тестирования / отладки, и все равно получаю сообщение об ошибке ниже.Так что ошибка происходит за пределами обработчика кнопки.Я имею в виду, что причина ошибки не в Fileupload.SAveAs и т. Д .... Поэтому вопрос в том, как этого избежать.Я имею в виду, что я установил ограничение в 1 МБ, но этот код не достигнут.

У меня нет проблем с небольшими размерами, например, я могу загрузить 400 КБ без проблем.

Итак, вопрос в том, что является причиной большого размера файла, как я могу решить эту проблему?

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

ОШИБКА Я получаю через 2-3 секунды

Упс!Эта страница кажется сломанной.HTTP 404 - файл не найден.

Ответы [ 3 ]

0 голосов
/ 15 декабря 2010

Вероятно, достигнут размер запроса по умолчанию. По умолчанию я считаю, что ASP.NET поддерживает ограничение размера запроса 4 МБ. Вы можете изменить это в вашей конфигурации:

<system.web>
  <httpRuntime executionTimeout="240" maxRequestLength="20480" />
</system.web>

В приведенном выше примере размер запроса изменяется на 20 МБ. Следует учитывать, что HTTP никогда не был предназначен для загрузки больших файлов. Вы можете рассмотреть возможность использования альтернативы, например, элемента управления загрузкой Flash ...

UPDATE

Для IIS7 вам может потребоваться обновить конфигурацию в разделе system.webServer:

<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="20480" />

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

0 голосов
/ 15 декабря 2010

Поскольку в теге <httpRuntime> в файле web.config уже установлено значение maxRequestLength, похоже, что вы используете фильтр запросов IIS7.

Попробуйте добавить это в файл web.config:

<security> 
    <requestFiltering> 
        <requestLimits maxAllowedContentLength="33554432"/> 
    </requestFiltering> 
</security>

В зависимости от того, как настроен ваш сервер, вам также может понадобиться изменить конфигурацию IIS, чтобы разрешить настройку фильтрации запросов на уровне приложения, а не на уровне компьютера.Изменить %windir%\system32\inetsrv\config\applicationHost.config и изменить:

<section name="requestFiltering" overrideModeDefault="Deny" /> 

Кому:

<section name="requestFiltering" overrideModeDefault="Allow" />
0 голосов
/ 15 декабря 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...