Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/ficheros/practica»

De WikiEducator
Saltar a: navegación, buscar
 
(8 revisiones intermedias por el mismo usuario no mostrado)
Línea 6: Línea 6:
 
{{Actividad|Title=Gestión de música e imágenes|
 
{{Actividad|Title=Gestión de música e imágenes|
 
*Vamos a hacer un sitio web para subir canciones, imágenes, ficheros pdf, y otros,  y poderlas ver/reproducir
 
*Vamos a hacer un sitio web para subir canciones, imágenes, ficheros pdf, y otros,  y poderlas ver/reproducir
 +
 +
;Clona un esqueleto del proyecto
 +
*Clona el proyecto del git (un esqueleto para tener punto de partida)
 +
'''''En Esta práctica es obligatorio partir de este esqueleto'''''.
 +
git clone https://github.com/MAlejandroR/enunciado_pactica_descargas.git
 +
;Ejecútalo
 +
*Puedes probar una posible ejecución aquí
 +
http://manuel.infenlaces.com/dwes/practicas/descargas/
 +
 +
 
;Descripción
 
;Descripción
 
*La aplicación tendrá dos páginas principales php:
 
*La aplicación tendrá dos páginas principales php:
Línea 26: Línea 36:
 
*Los usuarios no admin podrán subir ficheros y ver ficheros publicados,
 
*Los usuarios no admin podrán subir ficheros y ver ficheros publicados,
 
*La usuaria admin podrá hacer lo del usuario no admin y ademas verá todos los ficheros subidos para poder publicarlos.
 
*La usuaria admin podrá hacer lo del usuario no admin y ademas verá todos los ficheros subidos para poder publicarlos.
;Ejecútalo
 
http://manuel.infenlaces.com/distancia/practicas/practica_4_descargas
 
}}
 
 
===Especificación como lista de requisitos===
 
===Especificación como lista de requisitos===
 
#RF1 El usuario visualiza la interfaz del index.php.
 
#RF1 El usuario visualiza la interfaz del index.php.
Línea 146: Línea 153:
  
  
 +
<!--
 
===Partimos del siguiente código===
 
===Partimos del siguiente código===
  
Línea 154: Línea 162:
 
{{Plegable|hide|Index.php (posible solución)|
 
{{Plegable|hide|Index.php (posible solución)|
  
$msj = isset( $_GET[ 'msj' ] ) ? $_GET[ 'msj' ] : null;
+
<source lang=php>
//Alternativamente se puede poner en php 7
+
<?php
//$msj =  $_GET[ 'msj' ]?? : null;
+
//Escribir las acciones necesarias para evitar warning y mantener el nombre de usuario introducido si vuelvo de descargas.php
//Inicilizo variables
+
 
$name = $_POST[ 'name' ] ?? "admin";
+
 
$pass = $_POST[ 'pass' ] ?? "admin";
+
var_dump($_SESSION);
+
  
 
?>
 
?>
  
 
<!DOCTYPE html>
 
<!DOCTYPE html>
<!--
+
 
To change this license header, choose License Headers in Project Properties.
+
To change this template file, choose Tools | Templates
+
and open the template in the editor.
+
-->
+
 
<html>
 
<html>
 
     <head>
 
     <head>
Línea 189: Línea 191:
 
                 <br/>
 
                 <br/>
 
                 <br/>
 
                 <br/>
                <!-- MAX_FILE_SIZE debe preceder al campo de entrada del fichero -->
+
               
                <!--    <input type="hidden" name="MAX_FILE_SIZE" value=1024 />-->
+
 
                 <div style="float:right">
 
                 <div style="float:right">
 
                     <input type="file" name="fichero"><br>
 
                     <input type="file" name="fichero"><br>
Línea 378: Línea 379:
  
 
</source>
 
</source>
 
+
-->
 
}}
 
}}

Última revisión de 07:12 19 abr 2022






Icon activity.jpg

Gestión de música e imágenes

  • Vamos a hacer un sitio web para subir canciones, imágenes, ficheros pdf, y otros, y poderlas ver/reproducir
Clona un esqueleto del proyecto
  • Clona el proyecto del git (un esqueleto para tener punto de partida)

En Esta práctica es obligatorio partir de este esqueleto.

git clone https://github.com/MAlejandroR/enunciado_pactica_descargas.git
Ejecútalo
  • Puedes probar una posible ejecución aquí
http://manuel.infenlaces.com/dwes/practicas/descargas/ 


Descripción
  • La aplicación tendrá dos páginas principales php:
  1. index.php
  2. descargas.php
  • Äl acceder a la app el usuario se puede identificar (nombre y pass) y puede especificar un fichero para subir.
  • Hay dos tipos de usuarios :
  1. Adminsitrador (admin/admin)
  2. Resto de usuarios (Cualquier usuario y password)
  • Llevaremos un ficheros de log donde anotaremos fecha (H:i:s D:m:y) usuario (user y pass) y fichero que se ha subido en caso de que lo suba
  • Existen dos conceptos de ficheros, se especifica más en párrafos siguientes
  1. Ficheros subidos:
Cualquiera puede subirlos, pero no se verán como publicados
  1. Ficheros publicados:
Aquellos ficheros subidos que la administradora podrá publicar (Solo admin)
  • La aplicación en su inicio nos dará opción a realizar 3 acciónes según podemos ver en la imagen


Ficheros accion index.png

  • Los usuarios no admin podrán subir ficheros y ver ficheros publicados,
  • La usuaria admin podrá hacer lo del usuario no admin y ademas verá todos los ficheros subidos para poder publicarlos.

Especificación como lista de requisitos

  1. RF1 El usuario visualiza la interfaz del index.php.
  2. RF2 El usuario no aporta alguno de los datos(usario y/o pass).
  3. RNF1 Se crea la estructura de ficheros para descargas y publicaciones.
  4. RF3 Se sube el fichero a download, o directorio publico.
  5. RF4 Un usuario no admin podrá ver ficherso subidos a upload o directorio privado
  6. RF5 Un usuario admin verá los ficheros de download(publicos) y de upload(privado)
  7. RF6 Los ficheros de upload(privado) tendrá una selección para poderlos publicar
  8. RF7 Los ficheros seleccionados se pubicarán: pasarán de upload a download
  9. RF8 Hay un fichero log que traceará todas las acciones según texto del enunciado

Los accesos pueden ser de tres tipos

  1. RF9 Se accede sin subir nada. (se visualizarán los ficheros según usuario)
  2. RF10 Se sube un fichero sin acceder.(mjs en el index que informará si se ha subido o no)
  3. RF11 Se sube un fichero y se acceder.

RF 1 : Interfaz de index.php

index.php

RF1AppArchivos.png
Descripción de la interfaz
Musica index 1.png

  • En ella el usuario aporta datos (Credenciales) y selecciona una acción:
  1. Subir fichero
  2. Acceder
  3. Acceder y subir fichero

LA siguiente imagen muestra los casos de uso de estas acciones
Index musica.png

RF 2:Verificar datos de usuario

index.php
  • Si el usuario no aporta alguno de los datos obligatorios
# Usuario
# Password
  • Nos quedamos en el index
  • Mostramos un mensaje de datos incorrectos


Index datos incorrecto.png

RNF1: Estructura de directorios

  • Crear la estructura de directorios para subir los ficheros tanto descargas como publicaciones
  • La aplicación tendrá la siguiente estructura de directorios:


Musica estructura directorios1.png

  • Vemos un directorio descargas con dos subdirectorios: uploads y downloads,
  • Dentro de cada subdirectorio tenemos un directorio por cada tipo de ficheros que queremos almacenar.
  • El funcionamiento será el siguiente:
  1. Cuando un usuario sube un fichero, éste es almacenado en su carpeta correspondiente en el directorio uploads.
  2. Cuando el usuario es admin, se mostrará todos los ficheros de la carpeta uploads,
  3. Cada fichero tiene un checkbox, que nos permite seleccionarlo
  4. Al presionar publicar, los ficheros seleccionados se moverán a la carpeta correspondiente (música, imagenes, ....) de la carpeta downloads.

RF3: Subir ficheros seleccionados a download

descarga.php
  • Cuando un usuario a especificado un fichero se subirá al subdirectorio correspondiente dentro de download


RF3AppArchivos.png

Vamos a tener un fichero de funciones para implementar estas acciones

RF 4 Visualizar ficheros públicos (upload)

  1. RF4 Un usuario no admin podrá ver ficherso subidos a upload
usuario no admin


Archivo:Accion subir ficheros 2.png

RF 5 Admin visualiza todo por separadfo

  1. RF5 Un usuario admin verá los ficheros de download y de upload
usuario admin


Accion subir fichero1.png

RF 6 Admin puede seleccionar ficheros subidos para publicar

  1. RF6 Los ficheros de download tendrá una selección para poderlos publicar
  • Ver imagen anterior

RF 7 Publicar: copiar de download a upoload

  1. RF7 Los ficheros seleccionados se pubicarán: pasarán de download a upload
  • Una vez que presionamos publicar podemos ver como al entrar ya tenemos los ficheros publicados


Casos uso 2a.png

  • Los ficheros descargados estarán sensibles a hacer un click sobre ellos, de forma que el navegador intente abrirlos si puede.

(Mostrar imágenes o pdf, o reproducir música)
Caso uso 3.png

RF 8 Crear log con las acciones realizadas

  1. RF8 Hay un fichero log que traceará todas las acciones según texto del enunciado