<b>ftp_get</b>

Enviada por <b>Jayr Porto</b> 
<b>ftp_get</b>
06 de March de 2003 às 07:17PM
<HTML>Bom, estou trabalhando em um sistema de downlods via ftp. Todo o processo esta correndo bem exceto pelo comando ftp_get onde tenho um retorno estranho.

A linha é:

$result = ftp_get($conn_id, "$local_file", "$file_to_dl", FTP_BINARY);

Meu problema esta localizado no $local_file. Quando coloco o mesmo nome no arquivo original, ele apenas copia o arquivo para o raiz do site.

vi referencias sobre o handle que deve ser colocado mas não consegui destrinchar este pedaço.

O que eu deveria colocar nesta variável para que o arquivo fosse baixado (ou aberto um prompt) com o mesmo nome original para o computador do cliente?

As demais configurações estão ok.

Desde já agradeço.</HTML>
hinom
Re: ftp_get
07 de March de 2003 às 02:15AM
há uns meses tava desenvolvendo um também, só que parei pra fazer outras coisas.

veja como está meu script de ftp_get:




<?
set_time_limit(0);
include "funcoes/funcoes.php";

$arquivo = $dir_e."/".$nome_arquivo;
$arquivo = str_replace("//","/",$arquivo);

$nome_arquivo = str_replace(".swf",".swf1",$nome_arquivo);
$nome_arquivo = str_replace(".pdf",".pdf1",$nome_arquivo);
$nome_arquivo = str_replace(".wmv",".wmv1",$nome_arquivo);
$nome_arquivo = str_replace(".wma",".wma1",$nome_arquivo);
$nome_arquivo = str_replace(".doc",".doc1",$nome_arquivo);

$arquivo_cliente = "tmp/".$nome_arquivo;

ftp_get($con, $arquivo_cliente, $arquivo, FTP_BINARY);
$tam = filesize($arquivo_cliente);

header("Content-type: application/octetstream");
header("Content-Transfer-Encoding: binary");
// header("Content-Transfer-Encoding: quoted-printable");
header("Content-Length: ".$tam);
header("Content-disposition: filename=".$nome_arquivo);
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
readfile($arquivo_cliente);

// header("Content-disposition: attachment; filename=$nom_fichier");
// header("Content-Type: application/force-download");

unlink($arquivo_cliente);

flush();
?>





ftp_get($con, $arquivo_cliente, $arquivo, FTP_BINARY);


$con -> é a conexão
$arquivo_cliente -> local pra onde deve ser copiado o arquivo (no servidor)
$arquivo -> é o local real do arquivo
FTP_BINARY -> modo da conexão FTP


na época que fiz ainda estava aprendendo a programar em PHP.
quando tiver tempo eu melhoro o script..
<b>Re: ftp_get</b>
07 de March de 2003 às 01:02PM
<HTML>Beleza. Entendi, FINALMENTE, a lógica do comando de download. Mas, se não for abuso, gostaria de me aprofundar no assunto.

Não ha como, via FTP, disparar o download do arquivo diretamente? Achei que o comando get serviria para isso. O que estou tentando é achar um modo seguro de manter meu arquivo em local sigiloso e, independente da plataforma, conseguir seu DL. Ví que não existe a opção RETR para FTP em php e é atrás disso que estou.

Valeu a informação.</HTML>
André de Castro Zorzo
Re: ftp_get
18 de March de 2003 às 05:20AM
o esquema é que o ftp_get busca o arquivo origem no próprio servidor... por isso não rola... a saída que encontrei num sistema de FTP q desenvolvi como trabalho de conclusão de curso foi usando o header!
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.