Para subir archivos a un servidor, lo único que debemos hacer es poner en un formulario un campo de archivo como los siguientes:
<form action=»» method=»post» enctype=»multipart/form-data»>
<input type=»file» name=»file» /> <input type=»submit» name=»submit» value=»Subir imagen» /> </form> |
Al enviar el formulario, el navegador envía automaticamente el archivo del campo a la carpeta temporal del servidor, pero el problema es una vez en esta carpeta cómo moverlo a la carpeta que se nos antoje.
Y aquí es donde entra en acción PHP y la función move_uploaded_file que moverá el archivo subido de la carpeta temporal a la carpeta que nosotros le digamos e incluso con el nombre que le pongamos.
<?
$destino = ‘uploaded’ ; move_uploaded_file ( $_FILES [ ‘file’ ][ ‘tmp_name’ ], $destino . ‘/’ . $_FILES [ ‘file’ ][ ‘name’ ]); ?> |
Donde $_FILES[‘file’][‘tmp_name’] identificara el archivo temporal subido al servidor, $destino, la carpeta en la que lo queremos mover y $_FILES[‘file’][‘name’] el nombre original del archivo.
Además también podemos conocer otros parámetros del fichero subido como por ejemplo el tamaño, vamos a ver un ejemplo:
<?
$destino = ‘uploaded’ ; // Leemos el tamaño del fichero $tamano = $_FILES [ ‘file’ ][ ‘size’ ]; // Comprovamos el tamaño if( $tamano < 500 ){ move_uploaded_file ( $_FILES [ ‘file’ ][ ‘tmp_name’ ], $destino . ‘/’ . $_FILES [ ‘file’ ][ ‘name’ ]); } else echo «El tamaño es superior al permitido» ; ?> |
Tambien podemos saber el tipo de archivo subido con la siguiente variable: $_FILES[‘file’][‘type’];
Nota: Para versiones anteriores a la 4.0.1 de PHP, en lugar del vector $_FILES, debemos usar $HTTP_POST_FILES.