FTP com PHP
Recentemente precisei desenvolver um sistema de sincronismo para uma aplicação móvel que tenho trabalhado. Como o sistema é on-line, o lance foi usar o PHP mesmo que impera soberano na internet.
No meu caso eu precisava sincronizar duas pastas e o banco de dados. Só para entender, nas tabelas do banco de dados estão informações diversas e dentre elas os caminhos para as imagens e animações contidas nas pastas.
Neste artigo estarei falando da atualização das pastas e deixando a parte do banco de dados para um outro post.
Depois de pensar um pouco nas possibilidades que tinha para atualizar as pastas, acabei optando por fazê-lo via FTP utilizando o PHP que é relativamente fácil, porém não é muito falado. Então tentarei mostrar aqui de forma simplificada os 4 métodos mais usados (acredito eu) em manipulação do FTP.
1- Conexão
function ConFTP() {
$con = ftp_connect("ftp.seusite.com", "porta"); // Efetua a conexão.
if(!$con) {
echo date("d/m/y h:i:s") . "> Erro na conexão.
";
} else {
echo date("d/m/y h:i:s") . "> Conectado com sucesso.
";
ftp_login($con,"usuario",'senha"); // Efetua o login.
ftp_pasv($con,false); // Define se é modo passivo ou ativo.
echo date("d/m/y h:i:s") . "> Login aceito para <Nome do usuário>.
";
echo date("d/m/y h:i:s") . "> Diretório atual: ".ftp_pwd($con)."
";
}
return $con;
}
2- Desconexão
function OutFTP($tmFtp) {
if(ftp_quit($tmFtp)) {
echo date("d/m/y h:i:s") . "> Desconectado com sucesso.
";
return true;
} else {
echo date("d/m/y h:i:s") . "> Erro ao desconectar.
";
return false;
}
}
3- Baixar arquivo
/**
* Efetua o download de um arquivo FTP
* @param Link ftp $tmFtp
* @param Arquivo local $loFile -> Caminho do arquivo local.
* @param Arquivo on-line $onFile -> Caminho do arquivo on-line
*/
function Down($tmFtp, $loFile, $onFile) {
if(!ftp_get($tmFtp, $loFile, $onFile, FTP_BINARY)) {
echo date("d/m/y h:i:s") . "> Erro ao tentar o dowload de : ".$onFile."
";
return false;
} else {
echo date("d/m/y h:i:s") . "> Download com sucesso de : ".$onFile."
";
return true;
}
}
Utilização:
$ftp = ConFtp();
if($ftp) {
Down($ftp, "../caminho/do/arquivo/local/arquivo.txt", "/www/caminho/do/arquivo/online/arquivo.txt"); // Faz o download do arquivo.txt para o caminho especificado.
}
É isso aí, espero que seja útil.

Leave a Reply