domingo, 20 de novembro de 2011

Download de arquivos do FTP

Bom dia,
Hoje irei explicar como fazer o download de arquivo que esta no FTP.

  Para iniciar fiz uma listagem de todos os arquivos cadastrados em meu banco de dados, já com o link para o download  como na imagem a baixo:

Como estou fazendo uma consulta no banco de dados a resultado vai vir de um record set ficando assim a tabela:

<table border="0">
        <tr align="center" bgcolor="#999999">
          <td>&Aacute;rea</td>
          <td>Tipo Materila</td>
          <td>Titulo</td>
          <td>Link</td>
          <td>Op&ccedil;&otilde;es</td>
        </tr>
        <?php do { ?>
          <tr>
            <td><?php echo $row_Recordset1['are_descricao']; ?></td>
            <td><?php echo $row_Recordset1['tipmat_descricao']; ?></td>
            <td><?php echo $row_Recordset1['mat_titulo']; ?></td>
            <td><a href="../../baixar.php?file=<?php echo     $row_Recordset1['mat_url']; ?>"><?php echo $row_Recordset1['mat_url']; ?></a></td>
            <td><a href="ftp_material.php?mat_codigo=<?php echo $row_Recordset1['mat_codigo']; ?>">^</a> | <a href="del_material.php?mat_codigo=<?php echo $row_Recordset1['mat_codigo']; ?>">X</a></td>
          </tr>
          <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
      </table>


A parte sublinha é a parte do link.
no link ele manda para minha pagina "baixar.php" com o parâmetro "file=o nome do arquivo".

Agora vamos colocar omo funciona o arquivo "baixar.php" pois é ele quem vai fazer o Download.

Código:

$pasta = 'ftp';  // nome da pasta no seu FTP , na onde os arquivos foram guardados

if(isset($_GET['file']) && file_exists("{$pasta}/".$_GET['file']))
{
    $file = $_GET['file']; // variavle que pega o nome do arquivo que deseja fazer o download
    $type = filetype("{$pasta}/{$file}"); //pega o tipo do arquivo que deseja fazer o download
    $size = filesize("{$pasta}/{$file}"); // pega o tamanho do arquivo do arquivo
    
  header("Content-Description:File Transfer"); //descriptografando para fazer o download
    header("Content-Type:($type)");  // pegando o tipo
    header("Content-lenght:($size)"); // pegando o tamanho
    header("Content-Disposition: attachment; filename=$file"); //verificando e inicializando o downlaod
    readfile("{$pasta}/{$file}"); //fazendo o download
    exit; // saindo
    
}

Bom pessoal este foi o post de hoje,
qualquer duvida só comentar reponderei o mais rápido.
bom domingo para todos.

Felipe Eleoterio


Nenhum comentário:

Postar um comentário