Está en la página 1de 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

NOMBRE: Isaac Pérez Sánchez_________________________. GRUPO: __4tv2_

Calificación: ____________ FECHA: 22 de enero de 2021

INSTRUCCIONES: RESOLVER TODOS LOS REACTIVOS.


Escribir de forma clara y concisa (indicar procedimiento y resultado).
Puntuación total del examen 10pts (el examen consta de 1 páginas).

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

}
}

Luego nuestro controlador.


Página 1|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
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.
{

//con esta instrucción guardamos el archivo que solicitamos especificando


la ruta donde lo alojaremos.
model.Archivo1.SaveAs("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_Archivos/
Archivo_ guardados/Archivo1.pdf");

//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");

@TempData["Message"] = "Se cargaron los archivos";


return RedirectToAction("Index");
}
}

//clase para comprimir la carpeta donde están alojados los archivos


public ActionResult Comprimir(FilesViewModel model)
{
//comprobamos que no exista el archivo y si es así lo eliminamos para escribirlo
nuevamente
if
(System.IO.File.Exists("C:/Users/chakp/source/repos/Guardando_Archivos/Guardando_A
rchivos/comprimidos.zip"))
{

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
");

@TempData["Message"] = "Se comprimieron los archivos";


return RedirectToAction("Index");

}
}

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

aqui la muestra de los archivos comprimidos

3. ¿Crear una página Web que envié los siguientes parámetros:

NUM_EMP, Nombre, Escuela

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

También podría gustarte