Ir para conteúdo

POWERED BY:

Arquivado

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

Renier Padilha

[Resolvido] Fazer Download em um servidor remoto utilizando php

Recommended Posts

Prezados boa tarde. Estou precisando de fazer um sistema de downloads simples, eu acho, basicamente ao entrar na paginas de downloads do meu site a pagina lista todos os arquivos que está em uma pasta no meu diretório FTP e me de uma opção de download. Eu consigo fazer a conexão com o FTP, mas daí em diante não estou obtendo sucesso. Como faço para listar todos os arquivos da minha pasta e ter uma opção de download?

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha eu tenho esse exmplo aqui que me mostra todos os arquivos php da minha pasta..

 

Basta apenas você adaptar para o seu uso..

 

<?php
foreach (glob("*.php") as $arquivo) {
	$arquivo_nome = str_replace("","",$arquivo);
	echo "<a href='$arquivo_nome' target='_blank'>$arquivo_nome</a><br/>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou utilizando este codigo para listar e tentar fazer o download por favor deem uma olhada no meu codigo e me digam se estou fazendo errado.

 


<?php
######ARQUIVO LISTAR.php
$remote_dir='httpdocs/downloads/'; // Caminho para o diretório remoto
$ftp_server = 'meuftp'; // FTP do destino
$ftp_user_name = 'username';
$ftp_user_pass = 'senha';


// Conexão
$conn_id = ftp_connect($ftp_server);

// login 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// listando arquivos do diretório
$contents = ftp_nlist($conn_id, $remote_dir);

// exibindo
echo '
';
foreach($contents as $file){
 echo '<br />';

 echo '<a href="download.php?arquivo='. (str_replace($remote_dir,"",$file)) .'">' . (basename($file)) .'</a>';
}
// fecha a conexão
ftp_close($conn_id);
?>

 

 


<?php
#####ARQUIVO DOWNLOAD.PHP

$local_file = 'php://stdout';
$server_file = isset($_GET['arquivo'])?$_GET['arquivo']:NULL;
if($server_file!=NULL)
{

$remote_dir='/httpdocs/downloads/'; // Caminho para o diretório remoto
$$ftp_server = 'meuftp'; // FTP do destino
$ftp_user_name = 'username';
$ftp_user_pass = 'senha';

// conectando
$conn_id = ftp_connect($ftp_server);
// login 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// efetuando o download
ftp_get($conn_id, $local_file, $server_file, FTP_BINARY);
echo $server_file;
}

// fecha a conexão
ftp_close($conn_id);
exit;

?> 

 

Por favor me ajudem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu arquivo de downloads, faça assim:

<!doctype html>
<html>
      <head>
             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
      </head>
      <body>
             <?php
                   $arquivo = isset( $_GET[ 'arquivo' ] ) ? stripslashes( $_GET[ 'arquivo' ] ) : NULL;
                   if( isset( $arquivo ) || !is_null( $arquivo ) ){
                          $FTPHandler = ftp_connect( 'ftp ...' );
                          if( is_resource( $FTPHandler ) ){
                              $FTPLogin = ftp_login( $FTPHandler , 'xxx' , '****' );
                              if( ftp_get( $FTPHandler , $arquivo, $arquivo, FTP_BINARY ) ){
                                     printf( 'Arquivo: %s foi salvo com sucesso !', $arquivo );
                              }
                          }
                   }
             ?>
      </body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei sim, e continuou sem funcionar, você poderia dar uma olhada no codigo listar.php que postei? estou desconfiado que o erro está na no meu

echo '<a href="download.php?arquivo='. (str_replace($remote_dir,"",$file)) .'">' . (basename($file)) .'</a>';

para entender melhor vou falar como está disposta as minhas pastas.

/ > raiz

/httpdocs> pasta onde roda meu site

/httpdocs/download> pasta onde encontra meu arquivo listar.php e o download.php e os arquivos que gostaria de disponibilizar para downloads.

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.