sábado, 5 de junho de 2010

FileUpload - Problema com o tamanho dos arquivos

Fala, galera!!

Hoje vou postar um código para solucionar um problema muito comum quando se trabalha com o componente fileupload.
Apesar do problema ser comum, a mensagem de erro não é nada esclarecedora.

Quando se tenta fazer o upload de um arquivo cujo tamanho seja maior do que o permitido(4MB) pelo .Net o site simplesmente "sai do ar". Exatamente. É exibida aquela mensagem de "página não disponível" e o desenvolvedor  não tem nem pista do motivo do problema.

Para solucionar este problema, adicione a seguinte linha dentro da seção <system.web> do seu web.config:

<httpRuntime maxRequestLength="20480" />

Você pode também configurar o tamanho máximo do upload para um diretório específico:

<location path="uploads">
     <system.web>
          <httpRuntime maxRequestLength="20480" />
     </system.web>
</location>

Um abraço e até a próxima!!

6 comentários:

  1. Com todo o respeito, isso não soluciona o problema, mas apenas dá uma margem maior para que ele não ocorra...
    Se uma pessoa fizer o upload acima do maxRequest, o erro irá ocorrer da mesma maneira.

    ResponderExcluir
    Respostas
    1. Boa noite Edu,

      Quando disse que essa era a "solução" foi baseado em uma experiência minha onde precisava fazer upload de arquivos cujo tamanho é maior que o tamanho padrão permitido pelo .net. Nesse caso, a "solução" é aumentar o MaxRequestLength para o tamanho desejado.

      Cabe ao desenvolvedor fazer a validação do tamanho do arquivo ou setar um valor tão grande que as chances do valor ser ultrapassado são muito remotas. A segunda opção não é recomendada.

      De qualquer forma, o principal intuito do post é esclarecer o motivo do erro e como evitá-lo, já que a mensagem de erro não é esclarecedora.

      Volte sempre!

      Excluir
    2. E qual seria a solução então?

      Excluir
    3. Não existe uma "solução", Denise. Simplesmente porque isso não é de fato um "problema" no código.
      É apenas uma limitação imposta pelo framework e que pode ser flexibilizada de acordo com suas necessidades.

      O único problema ao meu ver é que a mensagem de erro não é esclarecedora.

      Para evitar que o erro aconteça você deve inserir uma validação client-side para verificar se o tamanho do arquivo selecionado pelo usuário é maior do que sua aplicação suporta e exibir uma mensagem de erro tratada para ele.

      Você consegue informações sobre como fazer a validação client-side nesse link:
      http://stackoverflow.com/questions/1832415/how-validate-file-size-using-html-and-javascript-on-client-side

      Excluir
  2. Valeu pela dica irmão, fera, foi em cima a dica .... vlwwwww

    ResponderExcluir