none
Upload de imagem com razor RRS feed

  • Pergunta

  • Galera, precisando de um novo help aqui.

    Preciso possibilitar ao meu cliente fazer uploads de algumas imagens para determinada pasta no servidor. Estou usando esta lógica, que por sinal não aparece erro nenhum. O form de upload, possui outros campos que salvo corretamente no banco de dados. Mas a imagem ou arquivo, não grava na pasta do servidor.....podem me ajudar a ver  erro?

    Meu controller:

    [HttpPost]
            public ActionResult ProcessRequired(Requisicao requisicao)
            {
                try
                {
                    var local = requisicao.Local;
                    var descricao = requisicao.Descricao;
                    var data = DateTime.Now;
    
                    var requisicaobd = new requisicaomanutencao
                    {
                        requisicaoManutencaoNome = local,
                        requisicaoManutencaoMensagem = descricao,
                        requisicaoManutencaoData = data,
                        branch_branchCnpj = requisicao.BranchCnpj
                    };
                    db.requisicaomanutencaos.Add(requisicaobd);
                    db.SaveChanges();
    
    
                    foreach (var file in requisicao.Imagem)
                    {
                        if (file != null)
                        {
                            var fileName = Path.GetFileName(file.FileName);
                            if (fileName != null)
                            {
                                var path = Path.Combine(Server.MapPath("~/Content/Image/Uploads/"), fileName);
                                file.SaveAs(path);
                            }
                        }
                    }
                    TempData["Message"] = "Sua solicitação foi registrada com sucesso!";
                    return View("Home");
                }
                catch 
                {
                    TempData["Message"] = "Não foi possível registrar sua solicitação!";
                    return View("Home");
                }
               
            }

    A pasta uploads existe no meu dominio, e ja alterei as permissões da pasta. 



    • Editado Fabio Junio domingo, 2 de junho de 2013 15:05 completando.
    domingo, 2 de junho de 2013 15:04

Respostas

  • Aqui um artigo bem legal e direto sobre upload de arquivo:

    http://davidandersonlino.net/blog/2011/05/02/file-upload-em-asp-net-mvc-3-e-razor/

    Atenção ao atributo Foto tipo HttpPostedFileBase no exemplo.

    Att.,



    Wanderson de Paula

    • Sugerido como Resposta Fabio.Junio quinta-feira, 12 de junho de 2014 16:05
    • Marcado como Resposta welington jrModerator segunda-feira, 5 de março de 2018 11:30
    segunda-feira, 3 de junho de 2013 14:29
  • Fábio,

    Boa noite!

    O seu problema não está no upload e sim na forma como você está montando o seu html, você tem uma lista de imagens, sendo assim você deve criar índices para os campos de upload das imagens, segue abaixo um exemplo de como seu html deve ficar:

    @using (Html.BeginForm("ProcessRequired","Gerenciador",FormMethod.Post, new{id = "formRequest",  @encType = "multipart/form-data"} )) {
        @Html.ValidationSummary(true)
        <label>Local da Atualização:</label>
        <input name="Local" placeholder="Informe aqui o nome correto da página que ira sofrer a atualização" size="100" type="text" /><br /><br />
        <label>O que quer que eu faça?</label><br />
        <textarea cols="93" rows="10" name="Descricao" placeholder="Escreva detalhadamente qual seu proposito"></textarea><br/><br/>
        <label>Se sua atualização possuir imagem, favor inseri-la aqui.</label><br/><br/>
        <p><input type="file" name="[0]imagem" /> | <input type="file" name="[1]imagem" /></p> <br/>
        <p><input type="file" name="[2]imagem" /> | <input type="file" name="[3]imagem" /></p> <br/>
        <p><input type="file" name="[4]imagem" /> | <input type="file" name="[5]imagem" /></p> <br/>
        <p><input type="file" name="[6]imagem" /> | <input type="file" name="[7]imagem" /></p> <br/>
        <p><input type="file" name="[8]imagem" /> | <input type="file" name="[9]imagem" /></p> <br/><br/>
       
        <p>
            <input type="hidden" name="branchCnpj" id="branchCnpj" value="@Session["BranchCNPJ"]" />
            <input type="submit" value="Enviar" /><br/><br/>
        </p>
       
    }



    Att,
    Leandro

    Se foi útil, marque como útil ou como resposta.


    segunda-feira, 3 de junho de 2013 23:18

Todas as Respostas

  • Olá Fábio, Você deve setar "multipart/form-data" em seu form. Como esta selecionando o arquivo? Att.,

    Wanderson de Paula

    domingo, 2 de junho de 2013 18:53
  • Olha ai Wanderson.....esta certinho.....

    @using (Html.BeginForm("ProcessRequired","Gerenciador",FormMethod.Post, new{id = "formRequest",  @encType = "multipart/form-data"} )) {
        @Html.ValidationSummary(true)
        <label>Local da Atualização:</label>
        <input name="Local" placeholder="Informe aqui o nome correto da página que ira sofrer a atualização" size="100" type="text" /><br /><br />
        <label>O que quer que eu faça?</label><br />
        <textarea cols="93" rows="10" name="Descricao" placeholder="Escreva detalhadamente qual seu proposito"></textarea><br/><br/>
        <label>Se sua atualização possuir imagem, favor inseri-la aqui.</label><br/><br/>
        <p><input type="file" name="imagem" /> | <input type="file" name="imagem" /></p> <br/>
        <p><input type="file" name="imagem" /> | <input type="file" name="imagem" /></p> <br/>
        <p><input type="file" name="imagem" /> | <input type="file" name="imagem" /></p> <br/>
        <p><input type="file" name="imagem" /> | <input type="file" name="imagem" /></p> <br/>
        <p><input type="file" name="imagem" /> | <input type="file" name="imagem" /></p> <br/><br/>
       
        <p>
            <input type="hidden" name="branchCnpj" id="branchCnpj" value="@Session["BranchCNPJ"]" />
            <input type="submit" value="Enviar" /><br/><br/>
        </p>
       
    }

    segunda-feira, 3 de junho de 2013 11:46
  • Aqui um artigo bem legal e direto sobre upload de arquivo:

    http://davidandersonlino.net/blog/2011/05/02/file-upload-em-asp-net-mvc-3-e-razor/

    Atenção ao atributo Foto tipo HttpPostedFileBase no exemplo.

    Att.,



    Wanderson de Paula

    • Sugerido como Resposta Fabio.Junio quinta-feira, 12 de junho de 2014 16:05
    • Marcado como Resposta welington jrModerator segunda-feira, 5 de março de 2018 11:30
    segunda-feira, 3 de junho de 2013 14:29
  • Fábio,

    Boa noite!

    O seu problema não está no upload e sim na forma como você está montando o seu html, você tem uma lista de imagens, sendo assim você deve criar índices para os campos de upload das imagens, segue abaixo um exemplo de como seu html deve ficar:

    @using (Html.BeginForm("ProcessRequired","Gerenciador",FormMethod.Post, new{id = "formRequest",  @encType = "multipart/form-data"} )) {
        @Html.ValidationSummary(true)
        <label>Local da Atualização:</label>
        <input name="Local" placeholder="Informe aqui o nome correto da página que ira sofrer a atualização" size="100" type="text" /><br /><br />
        <label>O que quer que eu faça?</label><br />
        <textarea cols="93" rows="10" name="Descricao" placeholder="Escreva detalhadamente qual seu proposito"></textarea><br/><br/>
        <label>Se sua atualização possuir imagem, favor inseri-la aqui.</label><br/><br/>
        <p><input type="file" name="[0]imagem" /> | <input type="file" name="[1]imagem" /></p> <br/>
        <p><input type="file" name="[2]imagem" /> | <input type="file" name="[3]imagem" /></p> <br/>
        <p><input type="file" name="[4]imagem" /> | <input type="file" name="[5]imagem" /></p> <br/>
        <p><input type="file" name="[6]imagem" /> | <input type="file" name="[7]imagem" /></p> <br/>
        <p><input type="file" name="[8]imagem" /> | <input type="file" name="[9]imagem" /></p> <br/><br/>
       
        <p>
            <input type="hidden" name="branchCnpj" id="branchCnpj" value="@Session["BranchCNPJ"]" />
            <input type="submit" value="Enviar" /><br/><br/>
        </p>
       
    }



    Att,
    Leandro

    Se foi útil, marque como útil ou como resposta.


    segunda-feira, 3 de junho de 2013 23:18
  • Fabio,

    Também tive dificuldade em montar upload multiple em mvc, montei um componente que usa webapi para multiple files.

    http://www.rodrigolang.com.br/Projetos/UploadArquivo

    Abs

    segunda-feira, 6 de janeiro de 2014 17:55