Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Damon

Lista pasta e fazer download dos arquivos ftp

Recommended Posts

Você está misturando remoto/local/ftp e tudo mais.

 

Primeiro, veja a documentação de ftp_get:

http://php.net/ftp_get

 

O segunda parâmetro é o local onde o arquivo será salvo no servidor onde o PHP está rodando. Você usou stdout. Como eu disse antes, não sei qual o comportamento disso. Pra mim, stdout é saída padrão do terminal, não do navegador. Por isso sugeri mudar para um arquivo.

 

O terceiro parâmetro é o arquivo no servidor FTP, de onde ele será baixado para o servidor da sua aplicação.

 

Quando o arquivo estiver no servidor da sua aplicação, você poderá lê-lo e enviá-lo ao visitante.

 

Acho que você está se confundindo com os nomes das variáveis que você criou.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Você está misturando remoto/local/ftp e tudo mais.

 

 

Eu confundi na hora que você me pediu para olha na pasta, não sabia qual a pasta que vc estava falando.

 

Primeiro, veja a documentação de ftp_get:

http://php.net/ftp_get

 

O segunda parâmetro é o local onde o arquivo será salvo no servidor onde o PHP está rodando. Você usou stdout. Como eu disse antes, não sei qual o comportamento disso. Pra mim, stdout é saída padrão do terminal, não do navegador. Por isso sugeri mudar para um arquivo.

 

Eu também é a primeira vez que utilizo esta função, acho que da para perceber...rsrs. No caso com ele eu sei que ta passando pelo ftp_get, acho que esta faltando pouca coisa, quando eu joguei ftp_get dentro do IF ele retornou a mensagem que o arquivo foi baixado, porem o arquivo não apareceu

 

O terceiro parâmetro é o arquivo no servidor FTP, de onde ele será baixado para o servidor da sua aplicação.

 

Quando o arquivo estiver no servidor da sua aplicação, você poderá lê-lo e enviá-lo ao visitante.

 

 

Os arquivos já estão no meu servidor, como eu tinha dito no começo o upload estou fazendo normalmente.

Acho que você está se confundindo com os nomes das variáveis que você criou.

A ultima duvida surgiu pelo fato de não ter passado aonde o arquivo será salvo. Pensei que eles seriam baixado e salvo na pasta padrão do local "download".

 

Bernado antes que eu me esqueço deixa eu te agradecer pela assessoria, vou tentando aqui e vou te passando feedback.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas o upload é feito pro servidor onde roda o PHP. O FTP é outro servidor, certo?

Não servidor é o ftp, eu tiro o arquivo da maquina local e jogo no ftp via php "falando em uma linguagem mais simples" .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me explique qual é o fluxo desse seu upload/download. Você faz o upload para seu servidor. Depois envia o arquivo pra outro servidor por FTP?

 

Pois se for no mesmo servidor, nem precisa usar FTP

Não, download e do servidor(ftp) para uma maquina local ("ou seja para a maquina do cliente")

e upload e da maquina do cliente para o servidor (ftp).

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você chama de servidor FTP é o mesmo servidor onde você executa o PHP? Ou você faz o upload pra esse servidor do PHP e, depois, faz upload pra outro servidor, via FTP?

É tudo um só.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então pra quê conectar por FTP? Você pode ter acesso direto ao arquivo, pelo próprio PHP, usando as Funções de FileSystem

 

Beraldo agora entendi o que você me falou os arquivos estão em pastas diferente, por exemplo meu php esta no domínio A e os arquivos esta no subdomínio B ai neste não teria como neh ! A pesar que eu acho que da pra mim transferir esta pasta para o mesmo domínio onde esta o meu php.

Antes de tentar dessa maneira da uma olhada neste código talvez você consiga ver qual a maneira de passar o caminho físico corretamente:

 

 

<?php

$ftp_server = "ftp.caminho.com.br";
$ftp_user_name ="sadasdasd"; 
$ftp_user_pass = "sadasdasdasd";

// path to remote file
$remote_file = '/web/13/testeFile.txt';
$local_file = 'D:\\dowload\\'; //caminho físico

// open some file to write to
$handle = fopen($local_file, 'teste');

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to download $remote_file and save it to $handle
if (ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII, 0)) {
 echo "successfully written to $local_file\n";
} else {
 echo "There was a problem while downloading $remote_file to $local_file\n";
}

// close the connection and the file handler
ftp_close($conn_id);
fclose($handle);
?> 

HP Warning: fopen(D:\dowload\) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No error in E:\home\Web\teste\download.php on line 12

PHP Warning: ftp_fget() expects parameter 2 to be resource, boolean given in E:\home\Web\teste\download.php on line 21

PHP Warning: fclose(): supplied argument is not a valid stream resource in E:\home\Web\teste\download.php on line 29

Compartilhar este post


Link para o post
Compartilhar em outros sites

O PHP roda em um servidor, não em um domínio. Se os dois domínios estiverem no mesmo servidor, o PHP pode copiar/mover os arquivos entre eles (na verdade, os arquivos são movidos/copiados para diretórios, não domínios), sem necessidade de FTP.

 

Seu código está errado. Primeiro: $local_file é o path local do servidor, não da máquina do usuário. O segundo parâmetro de fopen() é o modo de abertura. Veja a documentação da função pra mais detalhes.

 

Mas se estiver falando do mesmo servidor, nem precisa copiar arquivo pra lá e pra cá. Basta ler o arquivo com o PHP, sem usar FTP nem nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O PHP roda em um servidor, não em um domínio. Se os dois domínios estiverem no mesmo servidor, o PHP pode copiar/mover os arquivos entre eles (na verdade, os arquivos são movidos/copiados para diretórios, não domínios), sem necessidade de FTP.

 

Seu código está errado. Primeiro: $local_file é o path local do servidor, não da máquina do usuário. O segundo parâmetro de fopen() é o modo de abertura. Veja a documentação da função pra mais detalhes.

 

Mas se estiver falando do mesmo servidor, nem precisa copiar arquivo pra lá e pra cá. Basta ler o arquivo com o PHP, sem usar FTP nem nada.

 

Com esta função eu consigo envia e baixa ?

 

E $remote_file é o que ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

$remote_file é o caminho do arquivo no servidor FTP ao qual você se conectou. O $local_file é o caminho no servidor onde roda o PHP. Se eles são o mesmo servidor, não precisa usar FTP. Basta acessar o arquivo diretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$remote_file é o caminho do arquivo no servidor FTP ao qual você se conectou. O $local_file é o caminho no servidor onde roda o PHP. Se eles são o mesmo servidor, não precisa usar FTP. Basta acessar o arquivo diretamente.

Qual a maneira que deve fica este código acima ? Se poder rescreve-lo pra mim poder entender melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só usar readfile(), como você fez antes, direto no caminho completo do arquivo ($server_file), sem precisar usar as funções de ftp

Pode me passar um exemplo sem ser pelo manual ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.