Bem-vindo ao tutorial sobre como mover arquivos em PHP. Aqui veremos como mover um arquivo de uma pasta para outra.
Respondendo: não! Não existe nenhuma função para mover arquivos no PHP, o que fazemos, na verdade, é “renomear” um arquivo direcionando-o para outra pasta.
Para isso usamos a função rename()
Atenção: Se Existir um arquivo com o mesmo nome na pasta destino ele será sobrescrito!
O Conteúdo da Nossa Pasta de Testes
Dentro da pasta raiz do meu site tenho o seguinte conteúdo: index.php que é onde está nosso código php, doc.txt que é o arquivo que será movido e a pasta documentos
. ├── doc.txt ├── documentos └── index.php
Sintaxe da Função rename()
A função rename leva dentro dela dois parâmetros: o arquivo atual e o novo nome que ele terá:
rename("arquivoAtual.txt"," novoNome.txt")
Movendo Arquivo em PHP
#1 Movendo o arquivo doc.txt para dentro da pasta documentos
<?php
rename("doc.txt","documentos/doc.txt");
?>
#2 momento de voltar o arquivo doc.txt para dentro da pasta raiz, mas iremos validar se obtivemos sucesso ou não.
<?php
echo rename("documentos/doc.txt","doc.txt") ? "Movido para /" : "Erro";
?>
Resultado:
Movido para /
Movendo um Arquivo Sem Sobrescrever
Acima, falamos que se existir um arquivo com o mesmo nome na pasta destino ele será sobrescrito. Para evitar isso podemos usar a função file_exists().
Para esse teste criei uma cópia propositadamente do arquivo doc.txt dentro da pasta documentos
<?php
if (file_exists("documentos/doc.txt")) {
echo "Arquivo Existe na pasta de destino";
} else {
rename("doc.txt","documentos/doc.txt");
echo "Arquivo Movido com Sucesso!";
}
?>
Resultado:
Arquivo Existe na pasta de destino