none
Problema de tamanho máximo no upload de arquivos RRS feed

  • Pergunta

  • Pessoal, estou desenvolvendo uma aplicação MVC que faz upload de vários arquivos ao mesmo tempo. Eu preciso que faça upload de mais de 4MB (que é o default) mas já alterei o web.config e não funciona! Após eu selecionar os arquivos ele não faz nada.

    Minha view:

    @using (Html.BeginForm("Upload", "XML", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
    <input id="arquivos" type="file" multiple="multiple" name="xmlFiles" />
    <input type="submit" value="OK" />
        
    }

    Web.config:

    <system.web>
        <compilation debug="true" targetFramework="4.5" />
        <httpRuntime maxRequestLength="51200" executionTimeout="1200"/>
    </system.web>

    Upload com menos de 4MB:

    Upload com mais de 4MB:

    Já tentei adicionar no system.webServer:

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

    e nada... Alguém pode me ajudar??

    terça-feira, 21 de janeiro de 2014 13:07

Todas as Respostas

  • Merielen poderia tentar configurar direto no IIS:

    tem um link que mostra esta configuração:

    http://ajaxuploader.com/large-file-upload-iis-asp-net.htm

    terça-feira, 21 de janeiro de 2014 14:06
  • Estou usando windows azure, não tenho como configurar o IIS.

    Eu tenho outra aplicação (também na nuvem) que não é MVC e com ela foi só mudar o web.config, ou seja, não é um problema de servidor.

    terça-feira, 21 de janeiro de 2014 14:15
  • Merielen todas configurações do IIS são possíveis de se fazer pelo WebConfig no post motra como mudar o DEFAULT, porém você pode adicionar no webconfig estas configurações:

    Quer seria se não me engano a seguinte opção dos nós de configuração Runtime

    <configuration>
      <system.web>
        <httpRuntime maxRequestLength="xxx" />
      </system.web>
    </configuration>

    terça-feira, 21 de janeiro de 2014 14:19
  • Lucas, meu web.config está exatamente assim. Coloquei o código na descrição da pergunta.
    terça-feira, 21 de janeiro de 2014 15:08
  • Merielen,

    pode ser uma limitação no Temporary folder. Eis um passo a passo detalhado:

    http://blogs.msdn.com/b/kwill/archive/2011/07/18/how-to-increase-the-size-of-the-windows-azure-web-role-asp-net-temporary-folder.aspx


    Thiago Custodio | Software Engineer
    Blog
    Twitter
    Faça parte da Comunidade Windows Azure Brasil no Facebook

    • Sugerido como Resposta Thiago CustodioMVP terça-feira, 21 de janeiro de 2014 15:13
    • Não Sugerido como Resposta Merielen_Santos terça-feira, 21 de janeiro de 2014 17:02
    terça-feira, 21 de janeiro de 2014 15:13
  • A propósito, você está salvando os arquivos em um blog storage??


    http://www.remondo.net/upload-large-files-azure-blob-storage-mvc-application/

    http://www.dotnetcurry.com/showarticle.aspx?ID=893


    Thiago Custodio | Software Engineer
    Blog
    Twitter
    Faça parte da Comunidade Windows Azure Brasil no Facebook

    terça-feira, 21 de janeiro de 2014 15:15
  • Thiago, não estou salvando no blob pois nesse caso não é necessário, fica apenas em memória para criação de algumas classes.

    Tentei a configuração que você falou mas não roda local, é uma configuração para produção para aumentar o limite que por default é 100MB, porém local também está com problema (não consigo importar mais de 4MB). Tentei outra configuração no ServiceDefinition.csdef:

    <LocalResources>
          <LocalStorage name="MyLocalStorage" sizeInMB="100" />
    </LocalResources>

    E também não foi...

    terça-feira, 21 de janeiro de 2014 16:11
  • Alguém para ajudar uma desenvolvedora desesperada?
    quinta-feira, 23 de janeiro de 2014 10:42
  • Merielen,

    Mes passado tive este problema na empresa,

    O que acontece é o seguinte, não adianta você setar apenas sua aplicação para aumentar o buffer de transferencia para upload. Vá direto no servidor e altere nele para o máximo.

    Na empresa onde eu estava os arquivos chegavam a 8 gigas e apos alteração, foi corrigido, mas lembresse, não adianta alterar na sua aplicação, tem que ser direto no webconfig que fica na raiz do servidor no IIS.

    Apenas salientando que o valor 524228800 é em bytes, convertendo para MB ficaria 50MB…

    Abaixo a formula para o calculo:

    50*1024*1024 para converter MB para bytes

    Boa sorte,

    AT_+

    Se der certo, por favor, clique como resposta.

    sexta-feira, 24 de janeiro de 2014 17:50
  • Esta alteração pode ser feita no arquivo metabase.xml, porém eu nao consegui achar na epoca e alterei direto no webconfig na raiz do servidor. Voce pode alterar via Aplicação do IIS é a propriedade

    AspMaxRequestEntityAllowed 

    Boa Sorte,

    AT_+

    ps. não tem nada a ver com o config da sua aplicação e por default são apenas 200 kb, entao primeiro mude na sua máquina e quando funcionar, solicite esta alteração no servidor. 

    Se a infra questionar, informe que esta atendendo a demanda do negócio da empresa e que com o aumento a unica coisa é que o IIS vai controlar o upload até o tamanho máximo, ou seja, vai aumentar a utilização de recursos do servidor por suportar esta transação, mas a sua aplicação estará garantida.

    sexta-feira, 24 de janeiro de 2014 17:55
  • Alexandre, obrigada pela luz. O problema é que o servidor é windows azure, é transparente pra mim qualquer configuração dele. Eu não possuo acesso, é como se fosse um serviço e não um servidor propriamente dito. E o pior é que tenho outra aplicação que funciona, porém não é em MVC, não sei se tem relação.
    sexta-feira, 24 de janeiro de 2014 19:45
  • Pessoal, depois de deixar esse problema de lado para resolver outras coisas, voltei a ele.

    O que percebi é que não é o tamanho em MB o problema, mas sim a quantidade de arquivos.

    Alguém sabe onde e como configurar isso?

    Vlw!

    quinta-feira, 6 de março de 2014 19:58
  • Pessoal, depois de deixar esse problema de lado para resolver outras coisas, voltei a ele.

    O que percebi é que não é o tamanho em MB o problema, mas sim a quantidade de arquivos.

    Alguém sabe onde e como configurar isso?

    Vlw!

    Eu não sei se posso te ajudar, mas, uma dica que eu dou sempre quando o upload são de vários arquivos, use um plugin JQuery (link: http://blueimp.github.io/jQuery-File-Upload/) ou UploadFy (link: http://www.uploadify.com/), que concerteza esse problema você não vai ter ... eu uso nos mesu projetos e são fantástico ... 

    Bom só uma dica. !!!


    Fulvio Cezar Canducci Dias

    quinta-feira, 6 de março de 2014 20:10
  • Fulvio, obrigada pela luz! Mas fiz testes, inclusive com demos na internet dos próprios plugins e também não aceita mais de 573 arquivos.
    sexta-feira, 7 de março de 2014 13:36