none
Falha em upload de imagens com arquivos grandes.... RRS feed

  • Pergunta

  • Tento fazer upload de imagens, se o arquivo é pequeno funciona perfeitamente, quando o arquivo é muito grande (Acima de 2megas), falha.
    Não adianta nem tentatar mostrar os erros, dá uma falha (

    A navegação para a página da Web foi cancelada

    )

    O que opde ser? Já alterei o web.config da forma abaixo mas não faz o upload nem exibe o erro.
    Alguém tem alguma sugestão????

    <customErrors mode="Off"></customErrors>
    <httpRuntime executionTimeout="600" maxRequestLength="100000000" />


    Grato a todos antecipadamente.
    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    quarta-feira, 8 de julho de 2009 18:42

Respostas

  • Glauber ficaria mais ou menos assim:

            //verifica se foi selecionado um arquivo para upload
            if (fuArquivo.HasFile)
            {
                //VERIFICA SE O ARQUIVO JA EXISTE NO SERVIDOR
                if (!System.IO.File.Exists("CAMINHO DA PASTA DE UPLOAD" + fuArquivo.PostedFile.FileName))
                    //SALVA O ARQUIVO
                    fuArquivo.SaveAs("CAMINHO DA PASTA DE UPLOAD" + fuArquivo.PostedFile.FileName);
                else
                    "MENSAGEM - NAUM FOI POSSIVEL GRAVAR O ARQUIVO";
            }
            else
                "MENSAGEM - SELECIONE UM ARQUIVO";


    Att,

    Israel Gonçalves "Se não puder vencer pelo talento, vença pelo esforço." “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    • Marcado como Resposta Glauber Rocha sexta-feira, 10 de julho de 2009 20:22
    quarta-feira, 8 de julho de 2009 19:14
  • Glauber tente aumentar o tempo da requisição. Possivelmente seja o servidor...

    <customErrors mode="Off"></customErrors>
    <httpRuntime executionTimeout="3600" maxRequestLength="100000000" />




    Att,

    Israel Gonçalves "Se não puder vencer pelo talento, vença pelo esforço." “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    • Marcado como Resposta Glauber Rocha sexta-feira, 10 de julho de 2009 20:21
    quarta-feira, 8 de julho de 2009 19:36
  • Oi Glauber, você precisa permitir o upload de arquivos grandes.

    Coloque isso no web.config dentro da tag configuration:

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

    Altere o maxRequestLength conforme a necessidade.
    • Sugerido como Resposta Guilherme_ quarta-feira, 8 de julho de 2009 21:27
    • Marcado como Resposta Glauber Rocha sexta-feira, 10 de julho de 2009 20:21
    quarta-feira, 8 de julho de 2009 21:26
  • Só pra constar.
    O problema era no Proxy.
    Desabilitei e funcionou perfeitamente.
    Vlw a todos.
    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    • Marcado como Resposta Glauber Rocha sexta-feira, 10 de julho de 2009 20:21
    sexta-feira, 10 de julho de 2009 20:21

Todas as Respostas

  • vc pode postar parte do seu codigo de upload aqui Glauber ?



    att,

    Israel Gonçalves "Se não puder vencer pelo talento, vença pelo esforço." “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    • Editado Israel Gonçalves quarta-feira, 8 de julho de 2009 18:53 erro de digitação
    quarta-feira, 8 de julho de 2009 18:52
  • Basicamente a parte que faz o upLoad é essa:

                                
    HttpPostedFile file = uplFoto.PostedFile;
    
    byte[] data = new Byte[file.ContentLength];
    
    file.InputStream.Read(data, 0, file.ContentLength);
    
    object[] obj = new object[1];
    Session["fotoName"] = "nomeFoto"  + extensao;
    
    bmp = ArrayToImage((byte[])data);
    bmp.Save(AppDomain.CurrentDomain.BaseDirectory + "images\\" + Session["fotoName"].ToString(), formato);
    


    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    quarta-feira, 8 de julho de 2009 18:58
  • Glauber, vc naum pode utilizar o metodo "save()" do seu fileupaload ?

    Att,

    Israel Gonçalves "Se não puder vencer pelo talento, vença pelo esforço." “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    quarta-feira, 8 de julho de 2009 19:00
  • Vc tem algum exemplo disto????
    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    quarta-feira, 8 de julho de 2009 19:05
  • Glauber ficaria mais ou menos assim:

            //verifica se foi selecionado um arquivo para upload
            if (fuArquivo.HasFile)
            {
                //VERIFICA SE O ARQUIVO JA EXISTE NO SERVIDOR
                if (!System.IO.File.Exists("CAMINHO DA PASTA DE UPLOAD" + fuArquivo.PostedFile.FileName))
                    //SALVA O ARQUIVO
                    fuArquivo.SaveAs("CAMINHO DA PASTA DE UPLOAD" + fuArquivo.PostedFile.FileName);
                else
                    "MENSAGEM - NAUM FOI POSSIVEL GRAVAR O ARQUIVO";
            }
            else
                "MENSAGEM - SELECIONE UM ARQUIVO";


    Att,

    Israel Gonçalves "Se não puder vencer pelo talento, vença pelo esforço." “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    • Marcado como Resposta Glauber Rocha sexta-feira, 10 de julho de 2009 20:22
    quarta-feira, 8 de julho de 2009 19:14
  • Utilizei o fileUpload.SaveAs(path+nome) e continua dando o mesmo erro.
    Arquivos pequenos sobem, os grandes dão erro.

    Alguém tem mais alguma sugestão???

    Grato....
    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    quarta-feira, 8 de julho de 2009 19:27
  • Glauber tente aumentar o tempo da requisição. Possivelmente seja o servidor...

    <customErrors mode="Off"></customErrors>
    <httpRuntime executionTimeout="3600" maxRequestLength="100000000" />




    Att,

    Israel Gonçalves "Se não puder vencer pelo talento, vença pelo esforço." “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    • Marcado como Resposta Glauber Rocha sexta-feira, 10 de julho de 2009 20:21
    quarta-feira, 8 de julho de 2009 19:36
  • Amigo.
    Não acredito que seja timeout, pois o erro é imediato.
    Assim que clico no botão dá o bendito erro instantâneamente, e está configurado para esperar 10 minutos.

    Estou partindo agora para hipótese de ser configuração no machine.config
    Estou pesquisando pra ver como configuro o httpRuntime lá.
    Se alguém tiver outra sugestão...
    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    quarta-feira, 8 de julho de 2009 20:10
  • Oi Glauber, você precisa permitir o upload de arquivos grandes.

    Coloque isso no web.config dentro da tag configuration:

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

    Altere o maxRequestLength conforme a necessidade.
    • Sugerido como Resposta Guilherme_ quarta-feira, 8 de julho de 2009 21:27
    • Marcado como Resposta Glauber Rocha sexta-feira, 10 de julho de 2009 20:21
    quarta-feira, 8 de julho de 2009 21:26
  • Pessoal.
    Já alterei os méteodos de upload.
    Já alterei o web.config com o httpRuntime e também o machine.config.
    No entanto continua o mesmo problema.
    Arquivos pequenos sobem, arquivos grandes dão erro imediatamente.
    Se tento localmente funciona o upload
    :(
    Mais alguma sugestão?
    Grato.
    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    sexta-feira, 10 de julho de 2009 12:45
  • Glauber,

    Veja que o esquema que passei é pra ser usado com o controle FileUpload . Você está usando ele?
    • Sugerido como Resposta Guilherme_ sexta-feira, 10 de julho de 2009 12:48
    sexta-feira, 10 de julho de 2009 12:47
  • Sim, estou usando o <asp:FileUpload ID="uplFoto" runat="server" Width="190"  />

    Será que não pode ser alguma configuração de firewall ou limitações impostas na rede?
    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    sexta-feira, 10 de julho de 2009 13:01
  • Oi Glauber,

    Dificil dizer. Tente rodar a aplicação localmente.

    Eu utilizo o FileUpload aqui e tive esse mesmo problema. Pra resolver, utilizei a solução que postei.
    sexta-feira, 10 de julho de 2009 13:09
  • Localmente funciona, quando acesso remotamente não.
    Não dá nem a página de erro do asp.net, dá logo de cara uma "

    A navegação para a página da Web foi cancelada

    "
    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    sexta-feira, 10 de julho de 2009 13:33
  • Você mudou o web.config da aplicação que está no servidor ou somente da sua máquina?
    • Sugerido como Resposta Guilherme_ sexta-feira, 10 de julho de 2009 13:37
    sexta-feira, 10 de julho de 2009 13:35
  • Mudei em ambos...
    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    sexta-feira, 10 de julho de 2009 13:43
  • Só pra constar.
    O problema era no Proxy.
    Desabilitei e funcionou perfeitamente.
    Vlw a todos.
    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    • Marcado como Resposta Glauber Rocha sexta-feira, 10 de julho de 2009 20:21
    sexta-feira, 10 de julho de 2009 20:21