Vamos a actualizar nuestra Política de privacidad próximamente. Te recomendamos consultar el avance.

Angular 2 avanzado: Gestión de archivos en PHP

Obtener rutas y tamaños de archivos en PHP

¡Prueba gratis durante 10 días

nuestros 1290 cursos !

Prueba gratis Mostrar modalidades de suscripción
Continuaremos mejorando y haciendo más sofisticada nuestra lectura de datos desde PHP. En esta lección vamos a ir más allá de lo básico y tomaremos datos como la ruta en que se encuentra el archivo y utilizaremos operaciones y cálculos de PHP para desplegar de forma sencilla el tamaño de cada archivo.
08:34

Transcripción

Vamos ahora a aprender cómo obtener el tamaño y también la información de la carpeta en que se encuentra un archivo. Yo acá estoy utilizando un servicio que me muestra los contenidos de una carpeta con su nombre y también el tipo de documento. Voy a agregarle algunos campos nuevos a este servicio. En este caso, voy a utilizar algunas funciones de PHP para poder conocer el tamaño de un archivo. Por ejemplo, vamos a poner acá un elemento dentro de este arreglo asociativo llamado "InfoArchivo". Vamos a ponerle la propiedad "Tamaño". En este caso voy a utilizar la N en vez de la Ñ para mejorar la compatibilidad y vamos a definir cuál es el tamaño. Nosotros tenemos acceso a una propiedad de PHP, donde podemos obtener el valor de un archivo. Por ejemplo, acá vamos a definir qué tamaño sea igual a "Filesize" que es la propiedad que obtiene el tamaño de un archivo y lo único que va a necesitar es que le definamos la ruta. ¿Cuál va a ser la ruta? En este caso, nosotros estamos iterando sobre los resultados de una carpeta. Así que, voy a tomar la variable llamada valor, donde se encuentra el nombre del archivo y lo voy a agregar con la ruta base, que es una variable donde me define la carpeta en la que nos encontramos. Con esos dos datos, yo tengo la información de la ruta completa de este archivo y así la propiedad "Filesize" me puede decir cuál es el tamaño de este archivo. Vamos a guardar, vamos a ver el resultado. Tenemos acá que el resultado es igual a la propiedad tamaño y nos da un número donde está el tamaño que tiene este archivo. Sin embargo, el número que estamos obteniendo acá está en "bytes". y normalmente esto puede ser útil si nosotros estamos trabajando con un archivo precisamente por eso es que PHP tiene esta función. Sin embargo, si lo que queremos es generar una visibilidad entre seres humanos, por ejemplo, que podamos conocer el tamaño de una forma más legible es mucho mejor que los definamos en MB, kB o en unidades más amigables con las personas. Así que, lo que vamos a hacer, es que vamos a tomar este valor y vamos a crear una función que se va a llamar "ConvertirBytes" y en ella vamos a enviar este dato. Ahora, vamos a trabajar esta función. Vamos a ponerle acá el nombre con B mayúscula. Vamos a definir la función exactamente con este nombre. Recordemos que en PHP las mayúsculas, minúsculas y cualquier otro carácter modifican el nombre de una variable o una función. Ahora que tenemos acá la función de convertir "Bytes", vamos a incluirle el valor que estamos obteniendo que es un valor que viene en "bytes" y vamos a hacer una operación matemática donde, número 1 vamos a definir la cantidad de decimales que queremos que tenga nuestra medida, por ejemplo, si quiero que mida 125.18 kB, si le pongo 0, el resultado va a ser 118 kB. Ahora también vamos a definir las unidades con las que vamos a trabajar. Las unidades en este caso, vamos a trabajar con "Bytes", "Kilobytes", "Megabytes" y "Gigabytes". Ahora vamos a hacer un par de operaciones matemáticas —no vamos a entrar mucho en detalle porque esto se sale un poco del alcance del curso— pero vamos a incluir estas funciones matemáticas, que básicamente lo que estamos haciendo es, estamos redondeando un valor en "bytes", lo estamos utilizando como múltiplo 1024 para obtener, a través de esta potencia, el valor correspondiente de acuerdo al múltiplo de 1024, Redondeamos el valor para tener un valor más fácil de leer, asignamos los decimales, en este caso, 0, pero si quieres tener más decimales puedes modificar esta variable y, finalmente, devolvemos una cadena de texto donde se incluye todo el valor, incluyendo las unidades. Entonces, vamos a tener acá un número redondeado de "bytes" redondeado a las unidades correspondientes y también vamos a mostrar la unidad correspondiente ya sea en "megabytes", "kilobytes" o "gigabytes". Vamos a guardar. Revisamos el resultado. Vemos que ahora ya cambió y con esta función que acabamos de incluir tenemos, por ejemplo, 4 kB, 350 kB, 1MB mucho más sencillo de leer. Finalmente, vamos a incluir dos propiedades adicionales a nuestro servicio. Vamos a incluir una ruta que nos va a servir posteriormente a la hora de procesar estos archivos para saber en qué ruta se encuentran. Y vamos a utilizar la ruta base en la que se encuentran almacenados así vamos a poder saber que estamos en la carpeta, por ejemplo, en este caso, "Archivos" y también vamos a utilizar otra propiedad de PHP. Acá yo voy a agregar una nueva propiedad llamada "Raíz" a mi arreglo asociativo y voy a insertar un "Dirname" que me va a devolver el nombre de la carpeta en la que me encuentro. También le voy a agregar el parámetro 1, lo cual me va a devolver la raíz de la carpeta en la que nos encontramos. Así va a ser más sencillo cuando estemos tratando de realizar operaciones con cada uno de los archivos que vamos a tener dentro de esta carpeta. Voy a almacenar y voy a ver el resultado final de mi servicio en PHP, donde voy a tener los nombres de los archivos. Voy a tener también las rutas y voy a tener también la raíz de cada uno de ellos. Esto me va a servir cuando esté trabajando en subcarpetas. Finalmente, quiero que notes que estamos trabajando con cadenas de texto y se están incluyendo algunos caracteres adicionales. Esto lo vamos a eliminar para que no nos de problemas a la hora de leerlo dentro de otro lenguaje, utilizando la propiedad "Stripslashes". Así que, nosotros estamos devolviendo acá el resultado en formato JSON y vamos a devolver exactamente ese mismo resultado, pero antes lo vamos a incluir dentro del comando "Stripslashes" para eliminar cualquier información no deseada. Y, finalmente, vamos a revisar el resultado vemos que ya no se nos están incluyendo ninguno de los caracteres indeseados. Estamos listos para poder trabajar con este archivo y poder desplegar información. Solo me falta un pequeño detalle. En este caso, voy a volver acá al código y vamos a modificarlo, porque si vemos dentro de la información que tenemos acá, vemos que se nos está mostrando un archivo que aparece con el nombre "Punto" y otro archivo que aparece con el nombre "PuntoPunto" aparecen como directorios. Ahora estos son elementos de sistema y no queremos que aparezcan dentro de la información que estamos brindando para procesar en aplicaciones externas. Para evitar eso, solo vamos a darle un formato rápido y acá donde estamos enviando la información para desplegar dentro de nuestro servicio, lo vamos a modificar y vamos a ponerlo dentro de una condicional que examina si el valor no es "Punto" o "PuntoPunto" despliegue los datos. Esto va a eliminar esos dos datos innecesarios. Tenemos el resultado final donde eliminamos este "Punto", "PuntoPunto" y ahora sí tenemos la información correcta de nuestro servicio listo para trabajar en una aplicación externa.

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.