Upload de archivos con PHP versión 1.0
Existen distintas formas para realizar subidas de archivos con PHP. En este artículo vamos a explicar como hacerlo utilizando la función PHP «move_uploaded_file()».
Esta función mueve un archivo subido a una nueva ubicación. Su estructura es la siguiente:
bool move_uploaded_file ( string $filename , string $destination )
Esta función intenta asegurarse de que el archivo designado por filename es un archivo subido válido (lo que significa que fue subido mediante el mecanismo de subida HTTP POST de PHP). Si el archivo es válido, será movido al nombre de archivo dado por destination.
El orden de comprobación es especialmente importante si hay cualquier posibilidad de que cualquier cosa hecha con los archivos subidos pueda revelar su contenido al usuario, o incluso a otros usuarios en el mismo sistema.
Devuelve TRUE en caso de éxito.
Si filename no es un archivo válido subido, no sucederá ninguna acción, y move_uploaded_file() devolverá FALSE.
Si filename es un archivo subido válido, pero no puede ser movido por algunas razones, no sucederá ninguna acción, y move_uploaded_file() devolverá FALSE. Adicionalmente, se emitirá un aviso.
Vamos a analizar un ejemplo. En nuestro <body> deberiamos tener un formulario como el siguiente:
<form action="tupagina.php" method="POST" enctype="multipart/form-data"/> <input type="hidden" name="MAX_FILE_SIZE" value="1000000"/> Archivo:<br/> <input name="archivo" id="archivo" type="file"/><br/><br/> <input type="submit" name="upload" value="Subir"/> </form>
Para subir archivos mediante un formulario deberemos añadir en la etiqueta <form> lo siguiente: enctype=»multipart/form-data»/.
El campo donde se añade el fichero que simplemente será un input type=»file» y el botón para enviar los datos necesarios teniendo el siguiente aspecto:
Un vez se envia el formulario, entra en juego el código PHP para validar la información y proceder a la realización de la subida del archivo.
//si se quiere realizar una subida de un archivo if (isset($_POST['upload'])) { $archivo = $_FILES['archivo']['name']; //si el campo archivo no viene vacio if ($archivo != "") { $tipo = $_FILES['archivo']['type']; $tamano = $_FILES['archivo']['size']; $temp = $_FILES['archivo']['tmp_name']; //Realizamos algunas comprobaciones antes de realizar la subida //En este caso solo queremos subir imágenes tipo: gif, jpg, jpeg, png y de un tamaño máximo de 2000000 bytes if (!((strpos($tipo, "gif") || strpos($tipo, "jpeg") || strpos($tipo, "jpg") || strpos($tipo, "png")) && ($tamano < 2000000))) { echo 'Error al subir el fichero.'; } else { $directorio = 'tu_directorio/'; //si el archivo no existe if (!file_exists($directorio.$archivo)) { //Mover el archivo al directorio creado o ya existente if (move_uploaded_file($temp, $directorio.$archivo)) { //cambiamos los permisos del fichero chmod($directorio.$archivo, 0777); echo 'Se ha subido correctamente el fichero '.$archivo; } } } } else { echo 'Error al subir el fichero.'; } }
Solo una duda en caso de dejar vacio el file no hay manera de evitar que la imagen se regrese a default osea que se quede permanente
En caso de dejar vacio el file no hay forma de evitar que la imagen insertada se quede ahi mismo guardada
Excelente, soy nuevo en PHP no entiendo mucho pero deseo que me compartas los archivos PHP o los dejes aqui para poder descargalos.
Gracias