Usando FTP com o PHP
Explicamos as funções para realizar transferência de arquivo, utilizando o protocolo FTP, através de páginas PHP. Exemplo de código para aprender a transferir arquivos ao servidor.
Constantemente nos encontramos baixando arquivos de Internet: Um programinha que alguém nos recomenda, a foto da modelo de moda ou os clásicos MP3′s . Sem nos dar conta de um modo ou outro fazemos uso do protocolo FTP (File Transfer Prococol) para baixar arquivos desde um Servidor. Baixamos mais do que transferimos… em outras palavras “Tomamos mais do que damos”. Este artigo pretende explicar como transferir ou permitir que seus usuários transfiram (colaborem) – arquivos ao Servidor usando as funções FTP incluídas no PHP. Lembrem do velho ditado que diz: “Mais vale dar que receber”.
O QUE É O FTP?
Siglas de File Transfer Protocol ou Protocolo de Transferência de Arquivos. Como seu próprio nome o indica, é um protocolo (que pertence a TCP/IP) que se encarrega da transferência de arquivos entre computadores conectados em rede. Ao se basear na arquitetura Cliente / Servidor, o FTP faz uso de dois componentes básicos:
-
Um cliente FTP. O qual se encarrega de se conectar a um servidor FTP para baixar ou transferir arquivos.
-
Um servidor FTP. Encarrega-se processar as petições dos clientes FTP, permitido-lhes baixar ou transferir arquivos através dele.
Para nos conectarmos a um servidor FTP, e assim, poder realizar consultas nele, necessitaremos dos seguintes dados:
-
Nome do Servidor. É a IP ou Nome do Servidor FTP ao qual temos que nos conectar, tal como: 65.134.10.5 ou ftp.billysite.net
- Porto. Número do porto do servidor. Por padrão é 21.
-
Conta de Usuário. É o nome da conta de usuário que temos atribuído. Há que certificar-se que conta com as permissões necessárias para transferir ou baixar arquivos. Se não tiver uma conta de usuário se pode acessar como usuário anônimo utilizando o nome de usuário anonymous.
-
Chave de acesso. É nossa senha de conta de usuário. Se acessarmos como usuário anônimo colocaremos como chave nosso correio-e a maneira de cortesia.
Uma vez conectados ao servidor FTP poderemos fazer uso de seus comandos para realizar as tarefas que melhor acharmos conveniente. Este artigo não pretende esboçar em grande medida o tema de FTP, por não ser este o objetivo fundamental do mesmo. Para mais informações sobre sobre este aspecto lhe recomendo revisar o artigo de Michael Calore: “El ABC de la transferencia de archivos por Internet”, disponível no web site de WebMonkey.
FUNÇÕES FTP EM PHP.
PHP faz uso de funções FTP para acessar a um servidor web, a maneira de cliente. A seguir mostraremos as funções básicas a usar no script, assim como uma breve descrição das mesmas. Se quiser maior detalhe destas e outras funções FTP lhe aconselho consultar a documentação oficial do PHP, disponível em: http://www.php.net/docs.php.
|
Função
|
Sintaxe
|
Descrição
|
| ftp_connect | int ftp_connect ( string host [, int port]) host: Nome ou IP de Servidor FTP. port: Porto, padrão 21. |
Estabelece uma conexião FTP ao host especificado. |
| ftp_login | int ftp_login( int ftp_stream, string username, string password) ftp_stream: Manejador FTP obtido com ftp_connect. username: Nome de usuário. password: senha de usuário. |
Começa a sessão em uma conexão FTP. |
| ftp_pasv | int ftp_pasv ( int ftp_stream, int pasv) ftp_stream: Manejador FTP obtido com ftp_connect. pasv: Se for TRUE ativa o modo passivo, se for FALSE ou desativa. |
Ativa ou desativa o modo passivo. Em modo passivo, as conexões de daos são iniciadas pelo cliente, ao invés de serem iniciadas pelo servidor. |
| ftp_pwd | int ftp_pwd ( int ftp_stream) ftp_stream: Manejador FTP obtido com ftp_connect. |
Devolve o nome do diretório atual. |
| ftp_put | int ftp_put ( int ftp_stream, string remote_file, string local_file, int mode) ftp_stream: Manejador FTP obtido com ftp_connect. remote_file: Nome com o qual se salvará o arquivo no Servidor FTP. local_file: Arquivo local que se encontra na máquina cliente. mode: Modo de transferência, pode ser FTP_ASCII ou FTP_BINARY. |
Transfere uma arquivo ao Servidor FTP. |
| ftp_nlist | int ftp_nlist ( int ftp_stream, string directory) ftp_stream: Manejador FTP obtido com ftp_connect. directory: Rota do diretório a listar. |
Devolve uma lista de arquivos do diretório dado. |
| ftp_size | int ftp_size ( int ftp_stream, string remote_file) ftp_stream: Manejador FTP obtido com ftp_connect. remote_file: Nome do arquivo no Servidor FTP. |
Devolve o tamanho do arquivo especificado. Nem todos os servidores suportam esta característica. |
| ftp_mdtm | int ftp_mdtm ( int ftp_stream, string remote_file) ftp_stream: Manejador FTP obtido com ftp_connect. remote_file: Nome do arquivo no Servidor FTP. |
Devolve a data da última modificação do arquivo especificado. Nem todos os servidores suportam esta característica |
| ftp_quit | int ftp_quit ( int ftp_stream) ftp_stream: Manejador FTP obtido com ftp_connect. |
Fecha uma conexão FTP |
Nota: Deve-se certificar que se encontrem habilitadas as funções ftp na configuração da versão de PHP que possui e de ter as permissões necessários em sua conta FTP para transferir e baixar arquivos.
CODIGO FONTE.
/inc/ftpfunc.php.
Script que conterá as constantes e funções a usar em index.php. Neste script deverá modificar os valores das constantes para ajusta-lo a suas necesidades. A função ConectarFTP lhe permitirá se conectar ao Servidor FTP; a função TransferirArquivo tem a tarefa de transferir um arquivo ao Servidor; e finalmente, a função ObterRota lhe outorgará a rota do diretório atual no qual está trabalhando o Servidor.
| <? # FUNÇÕES FTP # CONSTANTES # Mude estes dados pelos de seu Servidor FTP define(“SERVER”,”localhost”); //IP o Nome do Servidor define(“PORT”,21); //Porto define(“USER”,”willy”); //Nome de Usuário define(“PASSWORD”,”12345″); //Senha de acesso define(“PASV”,true); //Ativa modo passivo # FUNÇÕES function ConectarFTP(){ function TransferiArquivo($arquivo_local,$arquivo_remoto){ function ObterRota(){ |
index.php.
Script que contém um formulário (form_ftp) que nos permite buscar um arquivo e transferi-lo ao Servidor FTP, ademais nos mostra uma lista dos diretórios e arquivos do mesmo.

|
<?php echo “<?xml versao=”1.0″ encoding=”iso-8859-1″?”.”>”; ?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml”> <head> <title>::..Funções FTP..::</title> <meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ /> </head> <body> <? <!–Formulario para escolher o arquivo a transferir –> <hr /> <tr> |
Bom, espero que esta colaboração tenha sido útil à Comunidade Web!
