3
respostas

File Upload no MVC

Pessoal, estou tentando fazer um blog em mvc para treinar, mas travei aqui no upload de imagens. Deixarei o codigo abaixo. Codigo da view:

@model Blog.Entidades.Noticia

<h2>Cadastro Noticia</h2>


@using (Html.BeginForm("Inserir", "Noticia", FormMethod.Post))
{
    @Html.LabelFor(n => n.Titulo, "Titulo:")
    @Html.TextBoxFor(n => n.Titulo, new { @class="form-control" })
    @Html.ValidationMessageFor(n => n.Titulo)

    @Html.LabelFor(n => n.Texto, "Texto:")
    @Html.TextBoxFor(n => n.Texto, new { @class="form-control" })
    @Html.ValidationMessageFor(n => n.Texto)

    @Html.LabelFor(n => n.CategoriaId, "Categoria:")
    @Html.DropDownListFor(n => n.CategoriaId, new SelectList(ViewBag.Categorias, "Id", "Nome"), new { @class="form-control" })
    //1 parametro SelectList -- qual a lista que quero pegar
    //2 parametro - o que quero guardar e 3 o que quero mostrar
    @Html.ValidationMessageFor(n => n.CategoriaId)

    @Html.LabelFor(n => n.Capa, "Capa da Noticia:")
    <input type="file" name="capa" id="capa" class="form-control" />
    @Html.ValidationMessageFor(n => n.Capa)


    <input type="submit" class="btn btn-success" value="Cadastrar / Alterar" />
}

Codigo do Controller:

 public ActionResult Inserir(Noticia noticia, HttpPostedFileBase file)
        {
            if (ModelState.IsValid)
            {
                string pic = Server.MapPath(file.FileName);
                string path = System.IO.Path.Combine(Server.MapPath("~/galeria"), pic);
                file.SaveAs(path);

                noticiaDAO.Inserir(noticia);

                return RedirectToAction("Lista");
            }
            else
            {
                return View("Form", noticia);
            }



        }

O erro que da e o seguinte: "Object reference not set to an instance of an object." Na linha: "Line 41: string pic = Server.MapPath(file.FileName);"

3 respostas

Olá, Lucas!

Você pode colocar um breakpoint nessa linha pra verificar se o objeto file não é nulo?

Me voltou isso: "An exception of type 'System.NullReferenceException' occurred in Blog.dll but was not handled in user code", mas eu coloquei sim um arquivo no file upload. Nao sei pq ta dando nulo.

Estou com o mesmo problema. O arquivo vem nulo.