(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
move_uploaded_file — Move um arquivo enviado para uma nova localização
Esta função faz uma verificação para garantir que o arquivo designado
por from
é um arquivo de envio válido
(que tenha sido enviado pelo mecanismo de envio POST HTTP do PHP).
Se o arquivo for válido, ele será movido para o nome de arquivo dado
por to
.
Este tipo de verificação é especialmente imporante se existir alguma chance de que qualquer coisa feita com os arquivos enviados possa revelar seus conteúdos ao usuário, ou mesmo para outros usuários no mesmo sistema.
from
O nome do arquivo enviado.
to
O destino do arquivo movido.
Retorna true
em caso de sucesso.
Se from
não for um arquivo enviado válido,
nenhuma ação ocorrerá e
move_uploaded_file() retornará
false
.
Se from
for um arquivo enviado válido, mas
não puder ser movido por alguma razão, nenhuma ação ocorrerá e
move_uploaded_file() retornará
false
. Adicionalmente, um alerta será emitido.
Exemplo #1 Enviando múltiplos arquivos
<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
// basename() pode evitar ataques no sistema de arquivos;
// valização e sanitização adicionais no nome do arquivo podem ser necessárias
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
?>
Nota:
move_uploaded_file() é afetada por open_basedir. Entretanto, restrições são aplicadas apenas no caminho de
to
para permitir a movimentação de arquivos enviados nos quaisfrom
possa conflitar com tais restrições. move_uploaded_file() assegura a segurança desta operação permitindo que apenas arquivos enviados através do PHP possam ser movidos.
Se o arquivo de destino já existir, ele será sobrescrito.