Soy nuevo en MVC 4 y estoy tratando de implementar el Control de carga de archivos en mi sitio web. No puedo encontrar el error. Obtengo un valor nulo en mi archivo.
Controlador:
public class UploadController : BaseController
{
public ActionResult UploadDocument()
{
return View();
}
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/Images/"), fileName);
file.SaveAs(path);
}
return RedirectToAction("UploadDocument");
}
}
Ver:
@using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="FileUpload" />
<input type="submit" name="Submit" id="Submit" value="Upload" />
}
asp.net-mvc
file-upload
Liam
fuente
fuente

enctypeel formulario me costó una horaRespuestas:
El parámetro
Uploaddel métodoHttpPostedFileBasedebe tener el mismo nombre que elfile input.Entonces solo cambie la entrada a esto:
Además, puede encontrar los archivos en
Request.Files:fuente
Index out of boundsexcepción en caso de que no haya ningún archivo en laRequest.Filescolección ...?ArgumentOutOfRangeException, pero tienes razón, actualicéviewmodelse nombra su propiedad,AgentPhotoentonces debe tener lo siguiente en su vista:<input type="file" name="AgentPhoto"/>var path = Path.Combine(Server.MapPath("~/Images/"), fileName);, la clase "Servidor" no encontrada, ¿qué paquete utiliza?Aclarándolo. Modelo:
Publicar acción
Finalmente, el método de Extensión para verificar el hasFile
fuente
Ver pagina
archivo de comandos
En el controlador
fuente
AJAXaquí.Html.BeginFormhace el trabajo ya. AJAX solo es necesario si no desea una redirección a la<form action=LINK>solo tiene que cambiar el nombre de su entrada archivada porque se requiere el mismo nombre en el parámetro y el nombre del campo de entrada simplemente reemplace esta línea Su código funciona bien
fuente
Creo que la mejor manera es usar HttpPostedFileBase en su controlador o API. Después de esto, puede detectar simplemente el tamaño, el tipo, etc.
Propiedades de archivo que puede encontrar aquí:
MVC3 Cómo verificar si HttpPostedFileBase es una imagen
Por ejemplo ImageApi:
Espero que sea de ayuda.
fuente
HttpPostedFileBase.