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
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á.