El 14 de septiembre de 2017, publicamos una versión revisada de nuestra Política de privacidad. Tu uso continuado de video2brain.com significa que aceptas este documento revisado, por lo que te recomendamos que dediques unos minutos a leerlo y comprenderlo.

Angular 2 avanzado: Gestión de archivos en PHP

Obtener nombre y tipo de un documento en PHP

Prueba ahora LinkedIn Learning sin cargo y sin compromiso.

Prueba gratis Mostrar modalidades de suscripción
En esta lección vamos a leer cada uno de los datos que se encuentran en una carpeta y vamos a iterar sobre todos y cada uno para obtener valiosa información como el nombre y tipo de documento, algo que usaremos más adelante en nuestra aplicación.
09:20

Transcripción

Vamos a utilizar las funciones especializadas de PHP para obtener información acerca de un archivo. Acá tengo un documento que está leyendo una carpeta a través del comando "scandir", en este caso está utilizando una variable llamada "rutaBase" que está leyendo una carpeta llamada "Archivos". En esta carpeta ya tengo algunos archivos. Vamos a ver el resultado; y vemos que esto es lo que me está mostrando, es la información de tres archivos: un jpg, un PowerPoint y un archivo zip. Vamos a modificar un poco este resultado para que nos dé un poco más de información Lo primero que voy a hacer es que voy a trabajar con un arreglo bidimensional. En este caso, para crearlo voy a utilizar una variable que se va a llamar"resultados"; y esta variable la voy a convertir en un arreglo que va a estar vacío. También, lo que voy a hacer es que voy a iterar sobre cada uno de los elementos que se encuentran dentro de la carpeta. Vemos que acá, estamos utilizando "scandir" y estamos igualándola a una variable. Así que, vamos a tomar esa variable "ficheros", que devuelve un arreglo y vamos a iterar por cada uno de los elementos que se encuentran en el fichero, o sea dentro de esta carpeta y vamos a asignarle un valor. Ahora, ¿qué vamos a hacer una vez que estemos dentro de este bucle? Lo que vamos a hacer es que vamos a crear otro arreglo, en este caso se va a llamar "info..." "...archivo" y va a ser un arreglo en blanco. Ahora este arreglo que está vacío vamos a empezar a insertar la información. En este caso, voy a poner el dato que ya teníamos que en este caso es "valor", que es la información que estoy obteniendo del "item" individual. Entonces, vamos a asignarlo acá. Y, por último, para tener la información visible, en vez de dar como resultado ficheros, que es la información que se está desplegando en la web vamos a cambiarlo a "resultados" no sin antes vamos a utilizar un comando para inyectar los valores que se encuentran dentro de "infoarchivo" que es este arreglo que tenemos acá. Vamos a utilizar un comando, que se llama "arraypush". Entonces, recapitulando: Leemos una carpeta, creamos un arreglo vacío, iteramos sobre los valores de la carpeta y en cada uno de los elementos que encontremos en la carpeta vamos a inyectarlos dentro del arreglo que antes está vacío y al llegar a este punto, nuestro arreglo va a tener un arreglo a su vez de la información que se encuentra por cada archivo. Vamos a ver el resultado para que tenga un poco más de sentido lo que te estoy diciendo. Vamos a ver que acá, ya que estamos dándole un formato JSON, estamos viendo que tenemos un arreglo global con toda la información. Y también tenemos objetos, donde tenemos propiedades, en este caso, "nombre", donde aparece el valor de "nombre" que era el que estábamos desplegando, pero ahora es mucho más sencillo porque ya está relacionado con una propiedad específica, ahora sabemos que "nombre" es el valor que está acá. Es mucho más fácil de presentar y de clasificar la información. Utilizando ese mismo principio, vamos a agregar algunos valores extra. Por ejemplo, vamos a mostrar qué tipo de archivo estamos utilizando. Para eso vamos a utilizar también la variable "infoarchivo". Vamos a agregar otra propiedad a este valor, estamos haciendo un arreglo asociativo. Vamos a decir que este valor va a ser de nombre "tipo", y acá vamos a poner qué tipo de archivo estamos trabajando. Para eso tenemos un comando que se llama "filetype" que nos permite saber cuál es el tipo de documento que estamos trabajando. Para eso necesitamos definirle la ruta que tiene el archivo. La ruta la vamos a obtener de esta forma: primero tomamos la ruta base que nos dice cuál es la carpeta en la que estamos trabajando, en este caso, "archivos". Y le vamos a concatenar con el nombre del archivo. Así que, por ejemplo, si nosotros tenemos dentro de la carpeta "Archivos", un archivo que se llama "imagen.png" acaba de decir que busque el tipo de archivo que tiene "archivos/imagen.png". Guardamos la información, y vamos a ver el resultado que nos da PHP. Vemos que nos empieza a mostrar la información, por ejemplo, tenemos diferentes tipos de archivos, estamos viendo aca cómo nos muestra que es un "dir". Tenemos acá que es un archivo en general. Y podemos distinguir entre los diferentes tipos de valores que vamos a tener. Utilizando ese mismo principio, vamos ahora a desplegar la extensión de nuestro archivo. Entonces, vamos a agregar otra propiedad de nuestro arreglo asociativo, en este caso teníamos "nombre" ahora vamos a poner "tipo", y vamos a decir cuál va a ser el tipo de documento con el que estamos trabajando. Podemos trabajar, por ejemplo, con directorios, archivos pdf, Powerpoint, etcétera. Entonces, lo que vamos a hacer es que en este caso vamos a hacer un proceso adicional y voy a crear una función que se va a llamar: "obtenerExtension", donde voy a incluir la ruta del archivo, y también la voy a concatenar con el nombre. Si, por ejemplo, llamamos a "imagen.jpg", vamos a llamar a, en este caso, "archivos/imagen.jpg". Esto para tener la ruta completa del documento que vamos a revisar. Lo vamos a ocupar dentro de un momento, porque voy a copiar este nombre, voy a crear ahora una función que se va a llamar —como acabamos de definir— que va a ser: "obtenerExtension" y vamos a recibir como parámetro "nombredeArchivo". Sabiendo eso, vamos a utilizar una propiedad de PHP que se llama "filetype". Así que voy a crear una variable que se va a llamar "tipo" y voy a decir que "filetype" tome el valor que viene de "nombredeArchivo" y lo iguale a esta variable. Lo que va a pasar es que vamos a tener como resultado el tipo de archivo. Esta función me va a devolver dos valores: directorio o "file". En el caso de un archivo, me va a devolver "file", en el caso de un directorio me va a devolver "dir". Vamos a utilizar los valores que devuelve esto para asignar la extensión. Voy a decirle que si —utilizando esta condicional— voy a decir que si el archivo que estamos leyendo, en este caso, la variable "tipo" es de tipo "file" la respuesta que me da "filetype" es que estamos leyendo un archivo directamente, entonces vamos a procesarlo. Vamos a decirle que me devuelva un "substring" o la parte de una cadena, así que vamos a poner "substring" donde vamos a tomar el nombre del archivo y vamos a decir que corte justamente en la posición que se encuentra el punto. Para eso vamos a utilizar la propiedad "stringpos" que me permite cortar, de acuerdo a la posición de un elemento y vamos a decirle que tome a "nombreDeArchivo" como base; que busque donde se encuentra el punto, porque sabemos que un archivo generalmente tiene una extensión, entonces vamos a buscar donde se encuentre el punto y para que no me incluya dentro de la cadena de texto ese punto —le vamos a poner acá "+1" y así no vamos a tener que mostrar el punto— en este caso lo que me va a devolver es, por ejemplo, si tengo un archivo ".pdf" me va a devolver la extensión que va a ser solamente las tres letras "pdf". Teniendo esto, también tenemos otro tipo de resultados que van a ser "dir". En ese caso nosotros necesitamos que nos lo muestre como un directorio para poder clasificar la información y desplegarla correctamente así que vamos a poner "else" para que me devuelva el valor que tiene "tipo". Listo. Revisamos si tenemos todos los puntos y comas correctos, tenemos la sintaxis correcta, vamos a revisar el resultado. Y vemos que ahora tenemos, por ejemplo, en las carpetas iniciales que da como resultado la extensión "dir", y en los demás documentos, por ejemplo: "archivo de imagen.jpg" me da que es de tipo "jpg". Tenemos acá uno de PowerPoint de tipo "pptx" y un archivo tipo "zip". Ahora ya tengo la información de cada una de las extensiones de mis archivos, tengo mucho más control sobre los datos que estoy obteniendo de una carpeta.

Angular 2 avanzado: Gestión de archivos en PHP

Aprende a crear vínculos entre PHP y Angular 2 mediante un ejemplo práctico en el que trabajarás del lado del servidor con PHP y la parte web con la tecnología Angular de Google.

3:20 horas (33 Videos)
Actualmente no hay comentarios.
 
Software:
Fecha de publicación:19/04/2017

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.