(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.
fromO nome do arquivo enviado.
toO 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
topara permitir a movimentação de arquivos enviados nos quaisfrompossa 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.