Traductor

Enviando Archivos con PHP

Ya hemos aprendido a cómo enviar datos que el usuario escribe en un formulario, y cómo recibirlos en un script en el servidor (lo que luego podemos hacer con esos datos, es tema de otro capítulos posteriores).
Ahora veremos, o aprenderemos un campo especial que se presenta en algunos formularios. Se trata del campo file que como usted sabe, permite enviar archivos. La matriz que se emplea para recibir este campo es:
$_FILES[...]
  • Ahora es importante que sepa que PHP solo puede recibir archivos cuando son enviados por del método POST.
Las matrices que gestionan los ficheros son asociativas de dos índices.
  • El primero (el de las filas), contiene el nombre que se ha dado en el formulario a cada campo del fichero (puede haber mas de uno en cada campo del fichero)
  • Dentro de cada fila encontramos otro indice con las propiedades del fichero, tales como:
    • Nombre
    • Tamaño 
    • Tipo, etc
Observe la siguiente tabla, en la cual se exponerlas propiedades que definen un archivo enviado al servidor:  
PROPIEDAD
CONTENIDO
error
Indica si se ha producido un error en el archivo enviado del fichero. Si todo ha salido correctamente, esta propiedad almacena el valor de 0, de lo contrario adquiere el valor de 1
name
El nombre del archivo, tal como lo tiene almacenado el usuario en su ordenador.
tmp_name
Es un nombre temporal que usa PHP para la gestión provisional del archivo, hasta que lo almacene en el disco del servidor, lo envíe por correo electrónico a donde corresponda, o cualquier otra acción que le hayamos programado al script.
type
Almacena el tipo de fichero que se ha enviado. Puede ser una Imagen, Audio, Video, Texto plano, etc.
size
Indica el peso del archivo en bytes
A continuación veremos varios ejemplos, en los cuales veremos diferentes tipos de archivos, como audio, ideo, texto plano, PDF, etc. los cuales enviaremos a una carpeta específica.
Para empezar veamos el siguiente script:
<html>
       <head>
       </head>
       <body>
              <form action="enviarFichero.php" method="post" name="f_prof" id="f_prof" enctype="multipart/form-data">
                     Fichero:
                     <input type="file" name="fichero" id="fichero">
                     <input type="submit" value="ENVIAR" name="ok" id="ok">
              </form>
       </body>

</html>
Observe que en el formulario hay un campo de tipo fichero al que hemos llamado precisamente fichero. (de rojo en el script).
En la etiqueta que abre el formulario hemos establecido como valor del atributo action, el nombre del script al que queremos que el usuario envíe un archivo. (de azul en el script).
Además hemos establecido el atributo enctype="multipart/form-data", el cual es imprescindible para formularios que contienen campo de archivo.
Ahora bien, pera los siguientes ejercicios vamos a necesitar  algunos archivos, los cuales puede descargar en el siguiente enlace.
Y el script al que fue enviado el formulario es el siguiente:
<?php
       foreach ($_FILES["fichero"] as $clave => $valor){
              echo ("Propiedad: $clave ---- Valor: $valor<br>");
       }
?> 
Este script, emplea un bucle foreach para recorrer cada uno de los elementos de una matriz que a su vez es el elemento fichero de la matriz $_FILES[...]. El nombre de este elemento viene dado por el nombre del campo de archivos en el formulario. Todos los elementos de esta matriz (las propiedades que PHP reconoce del archivo enviado) se listan, obteniendo un resultado similar al siguiente:
Ahora:
  • Veremos la propiedad name que como se aprecia, corresponde al nombre con el que está gravado el archivo en el disco del cliente.
  • La propiedad type contiene el valor image/pjpeg. Este valor nos indica que el archivo es una imagen de tipo jpeg.
  • La propiedad tmp_name puede parecer intrascendente, sobre todo si usted piensa que ha sido asignada por el propio interprete de PHP. Sin embargo es quizás, una de las propiedades mas interesantes, como después veremos.
  • La propiedad error tiene el valor de cero, lo cual nos indica que no ocurrió ningún error en el proceso.
  • Por último la propiedad size, almacena el peso del archivo en bytes. Teniendo en cuenta que un Kb son 1024 bytes.
Los tipos mas comunes de archivos que se suelen enviar a través de un formulario, aparecen en la siguiente tabla:
TYPE
TIPO DE ARCHIVO
image/pjpeg
Imagen en formato .jpg
image/gif
Imagen en formato .gif
image/bmp
Imagen en formato .bmp
image/x-png
Imagen en formato .png
audio/mpeg
Audio en formato .mpeg (normalmente mp3)
video/mpeg
Videos en formato .mpeg
application/x-rar-compressed
Cuando el tipo de un archivo empieza por aplication/ requiere ser abierto con algún programa específico. En este ejemplo se trata del formato .rar
text/plain
Texto Plano
text/richtext
Texto enriquecido
Application/pdf
Archivo de PDF

En los siguientes capítulos seguiremos viendo mas sobre ficheros, por el momento es todo.

Recuerden Comentar Compartir y Darle 

Hasta la Próxima

Si te hemos ayudado : )
Te agradeceríamos que apoyaras este proyecto

0 comentarios:

Publicar un comentario