- En mi caso estoy trabajando en mi localhost, con el programa XAMPP.
- Debemos crear nuestro formulario html, ahi utilizaremos lo siguiente :
- Etiqueta input de tipo file : Nos permite seleccionar un archivo de nuestra computadora
- Etiqueta input de tipo submit : Para aceptar y dirigirse a procesar la subida del archivo.
- Observación : Nuestro formulario debe tener el tipo encoding enctype = "multipart/form-data" , este sirve para el control de archivos (subidas y envíos, etc).
Estructura Inicial
Archivo Formulario.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"> <title>Upload</title> <style> /* estilos para el formulario */ .content{ width: 1000px; margin: 0 auto; background-color: #eee; padding: 20px; min-height: 400px; text-align: center; font-size: 20px; } input{ cursor: pointer; display: block; margin: 15px auto; } </style> </head> <body> <div class="content"> <h2>Formulario Upload en PHP </h2> <form action="upload.php" method="post" enctype="multipart/form-data"> <strong>Seleciona un archivo :</strong> <input type="file" name="file" required> <input type="submit" name="enviarFile" value="Aceptar"> </form> </div> </body> </html> |
- Si ingresamos al archivo por la web nos debería mostrar lo siguiente.
- Bien, por ahora todo está perfecto , ahora debemos crear un archivo que se va encargar de manejar la subida del archivo para eso debemos tener en cuenta que en nuestro formulario, el atributo action=upload.php, ese 'upload.php' es el archivo que hará el proceso de subir el archivo.
- Nuestro archivo upload.php tendrá la siguiente estructura que está explicado detalladamente en el en el código.
Archivo upload.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | <?php header('Content-Type: text/html; charset=utf-8'); /* Validamos sí se ha presionado el boton Aceptar. */ if(isset($_POST['enviarFile'])) { /* Validamos si se ingreso un archivo en el input file. */ if( $_FILES['file']['size'] != 0 ) { /* Configuraciones de carpeta que se subiran los archivos. */ $target_dir = "uploads/"; /* Concatenación de la carpeta uploads con la función basename que nos devuelve el último componente de nombre de una ruta. */ $target_file = $target_dir . basename($_FILES["file"]["name"]); /* Varible bandera que nos va permitir verificar el estado de subida del archivo. */ $uploadOk = 1; /* Con la función pathinfo, obtenemos la extensión del $target_file */ $FileTypeExtension = pathinfo($target_file,PATHINFO_EXTENSION); /* Verificamos si ya existe ese archivo. */ if (file_exists($target_file)) { echo " Error, el archivo ya existe. "; $uploadOk = 0; } /* Verificamos el tamaño del archivo que sea menor de 1MB . */ if ($_FILES["file"]["size"] > 1048576) { echo " Error , el archivo es demasiado grande. "; $uploadOk = 0; } /* Si en caso entro algunos de los if anteriores, este if le marca un error con la variable bandera que definimos anteriormente . */ if ($uploadOk == 0) { echo " Error, Tu archivo no se pudo subir. "; } else { /* Mueve un archivo subido a una nueva ubicación. */ if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { echo " Tu archivo ". basename( $_FILES["file"]["name"]). " fue subido con éxito ."; } else { echo " Error, Hay un error al subir el archivo. "; } } } else { echo " No se ingreso un archivo. "; exit(); } } else { echo " No se presiono el boton aceptar. "; exit(); } ?> |
- Como vemos nuestra carpeta de proyecto, debería quedar así :
- Lo nuevo sería la carpeta uploads, está contendrá todos nuestros archivos que vamos a subir.Debemos crear esta carpeta 'uploads' en el mismo nivel de los archivos como se ve en la imagen.
- Un ejemplo adjuntamos una imagen cualquiera en mi caso yo voy a usar está imagen del logo de php, la tengo descargada en mi escritorio.
- Nos dirigimos a nuestro formulario en la web, elegimos la imagen y le damos al botón Aceptar.
- Nos va dirigir a un mensaje de éxito de subida y vemos en nuestra carpeta de uploads.
- Bueno eso es todo espero que se haya entendido el tutorial, cualquier duda que tengan.No dejen de escribir sus comentarios.
- El código lo pueden descargar desde esté enlace CÓDIGO UPLOAD PHP 2015
Como se puede mostrar la url de la imagen al subirse y si quiero alojar este codigo en un hosting para que las personas puedan subir imagenes, lo subiria tal y como esta o debo agregar mis datos del host?
ResponderBorrar