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