1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[PHP/Mysql] Download

Discussão em 'Web Development' iniciada por undercore, 15 de Dezembro de 2008. (Respostas: 6; Visualizações: 1045)

  1. undercore

    undercore Power Member

    Boas mais uma vez.
    Estou a tentar fazer download de ficheiros de uma base de dados mysql, e visto o meu conhecimento em php não ser vasto, estou a ter problemas em encontrar informaçao na net, de um script que vá a minha base de dados, ao campo longblob, fazer o download do ficheiro para um path dado.
    Alguem me pode ajudar?
    Thx
     
  2. hostmake

    hostmake Power Member

    Guardas alguma informação do ficheiro, e chamas os headers do PHP, como está no site.

    Pequeno exemplo

    PHP:

      $sql 
    "SELECT bin_data, filetype, filename, filesize FROM ficheiros WHERE id ='$id'";
      
    $dados = ..........bin_data
      $nome 
    = ..........filename
      $tamanho 
    = ..........filesize
      $tipo 
    = ..........filetype
        
      header
    ("Content-type: $tipo");
      
    header("Content-length: $tamanho");
      
    header("Content-Disposition: attachment; filename=$nome");
      
    header("Content-Description: descricao...");
      echo 
    $dados

     
  3. undercore

    undercore Power Member

    sim, mas fazendo o que estás a dizer, o que me acontece é quando lhe dou o nome do ficheiro que quero fazer download da tabela, ele faz o download de um ficheiro (sem extensao) em que la dentro esta a palavra dados e nada mais.
    o codigo que tenho é:

    PHP:
    $con=mysql_connect ($srv$usr$snh) or print mysql_error();
    $db=mysql_select_db ($banco$con) or print mysql_error();

    $arq_name  $_POST['filename'];

    $sql "SELECT ID, tipo, tamanho, dados FROM ficheiros WHERE id ='$arq_name'"
      
    $dados dados;
      
    $nome ID;
      
    $tamanho tamanho
      
    $tipo tipo;

      
    header("Content-type: $tipo"); 
      
    header("Content-length: $tamanho"); 
      
    header("Content-Disposition: attachment; filename=$nome"); 
      
    header("Content-Description: descricao..."); 
      echo 
    $dados;

    Agradecia ajuda, obrigado.
     
  4. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

  5. hostmake

    hostmake Power Member

    Errado, para download não é preciso isso tudo, e quanto a pergunta da extensão, pensa lá um bocado.. a extensão é apenas um bocado do nome, portanto.
     
  6. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    "Para download não é preciso isso tudo" referias-te ao código dele ou às minhas funções? É que para obter os dados da BD são necessárias essas funções todas, excepto uma das duas últimas :P
    Em relação à extensão, o hostmake tem razão, é só parte do nome, mas se quiseres que um ficheiro tenha um tratamento especial por parte do browser (isto é, mostrar imagens em vez de perguntar se o utilizador quer fazer download das mesmas), deve-se alterar o content-type para estar de acordo com o tipo do ficheiro.
     
  7. undercore

    undercore Power Member

    mais uma vez, brigadao Kayvlim,

    done here
     

Partilhar esta Página