move_uploaded_file
(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
move_uploaded_file — Move um arquivo enviado para uma nova localização
Descrição
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.
Parâmetros
from
-
O nome do arquivo enviado.
to
-
O destino do arquivo movido.
Valor Retornado
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.
Exemplos
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");
}
}
?>
Notas
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 quais from
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.
Aviso
Se o arquivo de destino já existir, ele será sobrescrito.