Connect and grab a file from an FTP

Asked

Viewed 114 times

0

I am trying to get a file from an FTP, however I am not able to receive and also no error message appears, by the contrary...

Below the code I’m using:

<?php

/* Declaração de variáveis */
$serverHost = 'ftp.teste.com.br';
$serverUser = 'teste';
$serverPass = 'teste';
$arquivoLocal = 'C:\xampp\htdocs\sistema\temp';
$diretorioRemoto = '/pub/cre/licenca/';
$arquivoRemoto = 'licencas00003935000121.dat';

/* Faz conexão com o servidor */
if (!$ftp = @ftp_connect($serverHost, 2321)) {
    echo "Erro ao se conectar com o servidor FTP...\n";
}else{
     echo "Sucesso ao se conectar com o servidor FTP...<br>\n";

}

/* Efetua autenticação no servidor */
if (!@ftp_login($ftp, $serverUser, $serverPass)) {
    echo "Erro ao efetuar autenticação no servidor FTP...\n";
    }else{
     echo "Sucesso ao se autenticar com o servidor FTP...<br>\n";

}

/* Definindo o modo passivo ligado */
ftp_pasv($ftp, true);
/* Acessando o diretório onde está o arquivo */
if (!@ftp_chdir($ftp, $diretorioRemoto)) {
    echo "Erro! Diretório não existe...\n";
    }else{
     echo "diretorio encontrado...<br>\n";

}
/**
* Copia o arquivo do servidor remoto para o servidor local
* Use FTP_ASCII para arquivos texto
* Use FTP_BINARY para arquivos binários
*/
if (@ftp_get($ftp, $arquivoLocal, $diretorioRemoto, $arquivoRemoto, FTP_ASCII)) {
    echo "Erro ao fazer download do arquivo...\n";
}else{
    echo "sucesso<br>";
    exit();
}
  • The @ in @ftp_connect, @ftp_login etc. Serves to hide errors, so they do not appear.

  • I took them all out, now from that permission message! I already added permissions and nothing! Warning: ftp_get(C: xampp htdocs temp system): failed to open stream: Permission denied in C: xampp htdocs sistema conectaftp.php on line 36 Warning: ftp_get(): Error Opening C: xampp htdocs sistema temp in C: xampp htdocs sistema conectaftp.php on line 36

1 answer

1

I was able to solve it this way:

<?php

$local_file = 'temp/arquivo.dat';

$server_file = '/pub/licenca/licencas96668116000172.dat';

$ftp_server="ftp.com.br";

$conn_id = ftp_connect($ftp_server,2321)or die("Erro de conexão com 
$ftp_server");

$ftp_user_name="teste";

$ftp_user_pass="teste";

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass) or die("Não foi possível realizar o Login");

ftp_pasv($conn_id, true) or die("Não foi possível mudar para o modo passivo");

if (ftp_get($conn_id, $local_file, $server_file, FTP_ASCII)) {

  echo "Transferência da licença foi executada com sucesso\n";

}
else{

  echo "Verifique e tente novamente\n";
}

ftp_close($conn_id);

?>
  • 1

    And what has changed? What was wrong? How did you fix it? Why did the change solve the problem? Could you complete the answer with this information?

Browser other questions tagged

You are not signed in. Login or sign up in order to post.