Cargar archivos en la base de datos con ASP.NET MVC

Quiero ofrecer una función en mi formulario para que el usuario cargue archivos y los guarde en la base de datos. ¿Cómo se hace esto en ASP.NET MVC?

Qué tipo de datos escribir en mi clase de modelo. Intenté con Byte[] , pero durante el andamiaje, la solución no pudo generar el HTML apropiado en la vista correspondiente.

¿Cómo se manejan estos casos?

Puede usar un byte[] en su modelo y un HttpPostedFileBase en su modelo de vista. Por ejemplo:

 public class MyViewModel { [Required] public HttpPostedFileBase File { get; set; } } 

y entonces:

 public class HomeController: Controller { public ActionResult Index() { var model = new MyViewModel(); return View(model); } [HttpPost] public ActionResult Index(MyViewModel model) { if (!ModelState.IsValid) { return View(model); } byte[] uploadedFile = new byte[model.File.InputStream.Length]; model.File.InputStream.Read(uploadedFile, 0, uploadedFile.Length); // now you could pass the byte array to your model and store wherever // you intended to store it return Content("Thanks for uploading the file"); } } 

y finalmente en su punto de vista:

 @model MyViewModel @using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" })) { 
@Html.LabelFor(x => x.File) @Html.TextBoxFor(x => x.File, new { type = "file" }) @Html.ValidationMessageFor(x => x.File)
}