# move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

move_uploaded_file — Mueve un archivo subido a una nueva ubicación

### Descripción

move_uploaded_file(string `$filename`, string `$destination`): bool

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.

### Parámetros

`filename`

  El nombre de archivo del archivo subido.

`destination`

  El destino del archivo movido.

### Valores devueltos

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.

### Ejemplos

Ejemplo #1 Subida de múltiples archivos

`<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
// basename() puede evitar ataques de denegación de sistema de ficheros;
// podría ser apropiada más validación/saneamiento del nombre del fichero
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
?>`

### Notas

> Nota:

> move_uploaded_file() es compatible con open_basedir. Sin embargo, las restricciones sólo están impuestas para la ruta `dest` para permitir mover los archivos subidos en los cuales `filename` pueda tener conflictos con tales restricciones. move_uploaded_file() garantiza la seguridad de esta operación permitiendo que sólo aquellos archivos subidos a través de PHP sean movidos.

Advertencia

Si el archivo destino ya existe se sobrescribirá.

### Ver también

- is_uploaded_file() - Indica si el archivo fue subido mediante HTTP POST
- rename() - Renombra un fichero o directorio
- Véase Manejo de subidas de archivos para un sencillo ejemplo de uso