Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERÍA TELEMÁTICA
UNIDAD DE APRENDIZAJE: APLICACIONES DISTRIBUIDAS
EXAMEN PRÁCTICO FINAL DEPARTAMENTAL
1. ¿Crear una aplicación Web que envié un archivo a un WebService y este mismo lo
materialicé en una carpeta especifica definida por ustedes?
Sol:
Los métodos utilizados para este problema son:
Primero esta clase para definir las variables donde guardaremos los datos de los archivos.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace Guardando_Archivos.Models.ViewModels
{
public class FilesViewModel
{
[Required]
[DisplayName("Mi archivo")] //solo definimos el nombre que queremos
que muestre en la pagina
public HttpPostedFileBase Archivo1 { get; set; } //definimos la
variable donde estara nuestro archivo
}
}
INGENIERÍA TELEMÁTICA
UNIDAD DE APRENDIZAJE: APLICACIONES DISTRIBUIDAS
EXAMEN PRÁCTICO FINAL DEPARTAMENTAL
using Guardando_Archivos.Models.ViewModels;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.IO.Compression;
namespace Guardando_Archivos.Controllers
{
public class FilesController : Controller
{
// GET: Files
public ActionResult Index()
{
if (TempData["Message"] != null) //unicamnete se usa para mostrar el mensaje
de exito
ViewBag.Message = TempData["Message"].ToString();
return View();
}
[HttpPost]
public ActionResult Save(FilesViewModel model) //definimos la clase que guardara
el documento solicitado.
{
//mensaje de exito
@TempData["Message"] = "Se cargaron los archivos";
return RedirectToAction("Index");
}
}
Página 2|9
INSTITUTO POLITÉCNICO NACIONAL
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERÍA
Y TECNOLOGÍAS AVANZADAS
INGENIERÍA TELEMÁTICA
UNIDAD DE APRENDIZAJE: APLICACIONES DISTRIBUIDAS
EXAMEN PRÁCTICO FINAL DEPARTAMENTAL
Nos queda lo siguiente solo que sin los archivos dos y tres ni el botón de comprimir que
son para el siguiente enunciado.
Y aquí la muestra de los archivos guardados.
2. ¿Crear una página Web que adjunte diferentes archivos y lo empaquete en un .Zip el
WebService lo recibe y lo desempaqueta?
Página 3|9
INSTITUTO POLITÉCNICO NACIONAL
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERÍA
Y TECNOLOGÍAS AVANZADAS
INGENIERÍA TELEMÁTICA
UNIDAD DE APRENDIZAJE: APLICACIONES DISTRIBUIDAS
EXAMEN PRÁCTICO FINAL DEPARTAMENTAL
Sol:
Este problema utilizó lo siguiente:
De igual forma la clase de definición de variables para nuestros archivos.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace Guardando_Archivos.Models.ViewModels
{
public class FilesViewModel
{
//definicion de las variables que guardaran los datos de nuestro archivo
[Required]
[DisplayName("Mi archivo")]
public HttpPostedFileBase Archivo1 { get; set; }
[Required]
[DisplayName("Mi segundo archivo")]
public HttpPostedFileBase Archivo2 { get; set; }
[Required]
[DisplayName("Mi tercer archivo")]
public HttpPostedFileBase Archivo3 { get; set; }
}
}
El controlador:
using Guardando_Archivos.Models.ViewModels;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.IO.Compression;
namespace Guardando_Archivos.Controllers
{
public class FilesController : Controller
{
// GET: Files
public ActionResult Index()
{
if (TempData["Message"] != null)
ViewBag.Message = TempData["Message"].ToString();
return View();
}
Página 4|9
INSTITUTO POLITÉCNICO NACIONAL
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERÍA
Y TECNOLOGÍAS AVANZADAS
INGENIERÍA TELEMÁTICA
UNIDAD DE APRENDIZAJE: APLICACIONES DISTRIBUIDAS
EXAMEN PRÁCTICO FINAL DEPARTAMENTAL
[HttpPost]
public ActionResult Save(FilesViewModel model) //esta clase s igual a la
del ejercicio anterior solo que modificada para múltiples archivos, en este caso
3.
{
if (model.Archivo1 == null)
{
if (model.Archivo2 == null)
{
model.Archivo3.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo3.pdf");
@TempData["Message"] = "Se cargaron los archivos";
return RedirectToAction("Index");
}
else if (model.Archivo3 == null)
{
model.Archivo2.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo2.pdf");
@TempData["Message"] = "Se cargaron los archivos";
return RedirectToAction("Index");
}
else
{
model.Archivo2.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo2.pdf");
model.Archivo3.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo3.pdf");
@TempData["Message"] = "Se cargaron los archivos";
return RedirectToAction("Index");
}
}
else if (model.Archivo2 == null)
{
if (model.Archivo1 == null)
{
model.Archivo3.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo3.pdf");
@TempData["Message"] = "Se cargaron los archivos";
return RedirectToAction("Index");
}
else if (model.Archivo3 == null)
{
model.Archivo1.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo1.pdf");
Página 5|9
INSTITUTO POLITÉCNICO NACIONAL
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERÍA
Y TECNOLOGÍAS AVANZADAS
INGENIERÍA TELEMÁTICA
UNIDAD DE APRENDIZAJE: APLICACIONES DISTRIBUIDAS
EXAMEN PRÁCTICO FINAL DEPARTAMENTAL
@TempData["Message"] = "Se cargaron los archivos";
return RedirectToAction("Index");
}
else
{
model.Archivo1.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo1.pdf");
model.Archivo3.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo3.pdf");
@TempData["Message"] = "Se cargaron los archivos";
return RedirectToAction("Index");
}
}
else if (model.Archivo3 == null)
{
if (model.Archivo1 == null)
{
model.Archivo2.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo2.pdf");
@TempData["Message"] = "Se cargaron los archivos";
return RedirectToAction("Index");
}
else if (model.Archivo2 == null)
{
model.Archivo1.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo1.pdf");
@TempData["Message"] = "Se cargaron los archivos";
return RedirectToAction("Index");
}
else
{
model.Archivo1.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo1.pdf");
model.Archivo2.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo2.pdf");
@TempData["Message"] = "Se cargaron los archivos";
return RedirectToAction("Index");
}
}
else
{
model.Archivo1.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo1.pdf");
Página 6|9
INSTITUTO POLITÉCNICO NACIONAL
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERÍA
Y TECNOLOGÍAS AVANZADAS
INGENIERÍA TELEMÁTICA
UNIDAD DE APRENDIZAJE: APLICACIONES DISTRIBUIDAS
EXAMEN PRÁCTICO FINAL DEPARTAMENTAL
model.Archivo2.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo2.pdf");
model.Archivo3.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/Archivo_ guardados/Archivo3.pdf");
System.IO.File.Delete("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Ar
chivos/comprimidos.zip");
}
//con esta instrucción podemos comprimir la carpeta seleccionada por la ruta dada
y se guarda en el archivo también especificado por la ruta en el segundo
parámetro,
ZipFile.CreateFromDirectory("C:/Users/chakp/source/repos/Guardando_Archivos/Guarda
ndo_Archivos/Archivo_ guardados",
"C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Archivos/comprimidos.zip
");
}
}
Página 7|9
INSTITUTO POLITÉCNICO NACIONAL
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERÍA
Y TECNOLOGÍAS AVANZADAS
INGENIERÍA TELEMÁTICA
UNIDAD DE APRENDIZAJE: APLICACIONES DISTRIBUIDAS
EXAMEN PRÁCTICO FINAL DEPARTAMENTAL
Página 8|9
INSTITUTO POLITÉCNICO NACIONAL
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERÍA
Y TECNOLOGÍAS AVANZADAS
INGENIERÍA TELEMÁTICA
UNIDAD DE APRENDIZAJE: APLICACIONES DISTRIBUIDAS
EXAMEN PRÁCTICO FINAL DEPARTAMENTAL
El WebService lo recibe y envía como resultado una imagen código Qr y la página Web lo
visualiza?
Página 9|9