Anexsoft | Blog y dictado de cursos de Tecnología

En este encontrarás tutoriales de tecnología como PHP, ASP.NET MVC, Front-End, entre otros y cursos exigentes de modalidad online que te ayudarán a crecer profesionalmente.

Queremos mejorar la calidad de nuestros cursos. Por favor ayúdanos llenando esta pequeña encuesta
Como subir varios archivos a la vez con ASP.NET MVC
Actualizado el 21 Enero, 2016 y leído 8,317 veces
Calificación: 10.00 / 10

Como subir varios archivos a la vez con ASP.NET MVC

Anexsoft

Esta entrada es muy parecida a la anterior, en que la enseñamos a subir un solo archivo , la diferencia ahora que veremos como subir varios archivos a la vez.

 

Creamos nuestro controlador
El cual contiene 2 acciones, una que la vista que contendra al formulario de subida y la otra es la acción encargada de subir los archivos. Recibe un array de la clase HttpPostedFileBase.

public class HomeController : Controller
{
    //
    // GET: /Home/

    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public void Subir(HttpPostedFileBase[] file) 
    {
        if (file == null) return;

        foreach (var f in file) 
        {
            if (f != null) 
            {
                string archivo = (DateTime.Now.ToString("yyyyMMddHHmmss") + "-" + f.FileName).ToLower();
                f.SaveAs(Server.MapPath("~/Uploads/" + archivo));
            }
        }
    }
}

 

 

Creando la vista

@using (Html.BeginForm("subir", "home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="file" /> 
    <br />
    <input type="file" name="file" /> 
    <br />
    <input type="file" name="file" /> 
    <br />
    <button type="submit">Subir archivo</button>
}

Creamos nuestra vista pero ahora declarando varios controles del tipo file, a cada control le ponemos el mismo nombre para nuestro caso "file". El nombre del control debe ser igual al parametro que recibe nuestra acción subir. Varios han tenido problema con esto por no darse cuenta de ese pequeño detalle.

 

Analizando el código de la acción "Subir"

if (file == null) return;

foreach (var f in file) 
{
    if (f != null) 
    {
        string archivo = (DateTime.Now.ToString("yyyyMMddHHmmss") + "-" + f.FileName).ToLower();
        f.SaveAs(Server.MapPath("~/Uploads/" + archivo));
    }
}

Validamos que el parámetro a enviar no sea NULL, ya que esto haría que se caiga el foreach.

Luego recorro el array, y  guardo el nombre del archivo actual concatenado la fecha y hora, porque si vuelvo a subir el mismo archivo este lo va a querer remplazar.

Luego le indico que mueva el archivo actual a la siguiente ruta:  "~/Uploads/", no te olvides crear una carpeta Uploads dentro de tu proyecto.

¡Adquiera ya!

  • Código de fuente de Red Social desarrollada en ASP.NET MVC

    Código de fuente de Red Social desarrollada en ASP.NET MVC
  • Software de Venta e Inventario hecho en PHP y Codeigniter

    Software de Venta e Inventario hecho en PHP y Codeigniter
  • Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#

    Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#

Últimas publicaciones

Encuesta

¿Sobre qué te gustaría que se hable más?

Síguenos

Estudia con nosotros y crece profesionalmente

Nuestros cursos han sido hecho en base a lo que demanda el mercado hoy en día.
La experiencia obtenida es la de un ambiente laboral.

Anexsoft
© 2018 Anexsoft, blog y cursos online de TI.