sábado, 8 de octubre de 2016

Capítulo 5 tutorial PHP subir archivos con PHP

Bienvenidos al capítulo 5 del tutorial de PHP, en este capítulo os muestro como subir archivos usando PHP, tened en cuenta que hay un limite de subida en el archivo de configuración PHP.ini, además si usais internet information server teneis otro límite en la configuración de éste.



Lo primero que tenemos que crear es un formulario en HTML:

<form action="subirarchivo.php" method="post" enctype="multipart/form-data">
    <input name="fichero" type="file">
    <input type="submit" value="Enviar">
</form> 


Como vemos las características  principales del formulario para poder subir archivos es que sea de tipo "multipart/form-data" y que en el campo action nos lleve a un archivo .php que vemos a continuación:

$ruta_fichero = "ficheros/" basename($_FILES['fichero']['name']);
if (move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_fichero)) {
    echo 
"El fichero se subió con éxito.\n";
} else {
    echo 
"¡Se produjo un error en la subida del fichero";
}


En la variable $ruta_fichero se guarda la ruta donde se quiere guardar el fichero y el nombre del fichero que se guardará, ya que el fichero está subido en una carpeta de archivos temporales, y la función move_upload_file lo que hace es mover ese fichero a la ruta que nosotros le indicamos y poniendole el nombre que nosotros queramos.
En este caso el nombre que le ponemos es el que tiene el fichero que vamos a subir, pero podríamos ponerle el que quisiésemos simplemente cambiando basename($_FILES['fichero']['name'] por lo que queramos.
POSIBLES ERRORES A LA HORA DE SUBIR UN ARCHIVO MEDIANTE PHP:
Los errores más comunes son los siguientes:
  • No tienes permisos en la carpeta que quieres guardar el archivo, para solucionarlo, ve al directorio donde quieres guardar el archivo, le das a propiedades, seguridad, editar y das permisos para que el servidor pueda guardar archivos en esa carpeta.
  • No tienes permisos para guardar archivos en la carpeta temporal, para solucionarlo tienes que ir a php.ini, ver cual es la carpeta en la que se guardan los archivos temporales que suele estar en c:\\Windows\Temp y das permiso al servidor.
  • No has indicado bien la ruta a guardar, revisa la ruta que has escrito para guardar el fichero y también verifica que las carpetas estén creadas.
  • El fichero tiene demasiado tamaño(Para delimitar el tamaño de los ficheros a subir podéis agregar esta línea al formulario: 
             <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />

     Y poner un if al código PHP como el siguiente:
     
       if( $_FILES['fichero']['size'] > 1000000 ) {
         echo 
"No se pueden subir archivos mayores a 1MB";
       } else {
        
// el codigo PHP anterior.       }  

El tamaño máximo de los ficheros a subir puedes configurarlo dentro de php.ini, si utilizas internet imformation server también tendrás que cambiarlo dentro de este. 
Si tenéis alguna duda o quereis que haga algún otro tutorial simplemente dejadme un comentario y lo haré encantado. 



CAPÍTULO 4 
                                                                                             CAPÍTULO 6

No hay comentarios:

Publicar un comentario