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

Mostrar imagem PHP+MySql

Discussão em 'Web Development' iniciada por silvino, 7 de Outubro de 2008. (Respostas: 4; Visualizações: 2039)

  1. silvino

    silvino Power Member

    Olá,

    Estou com um problema, não sei como resolver da melhor forma.

    Tenho uma pasta no servidor com imagens, estas estão guardadas com o nome em numero inteiro sem extensão, este numero corresponde ao "id" do index da tabela que guarda informação sobre ela.

    Na tabela tenho o campo "nome" que guarda o nome real, tipo "imagem.png". O index "id" da tabela corresponde ao ficheiro.

    Como faço agora para mostrar no browser do cliente uma imagem ? Penso que o ideal seria criar um ficheiro temporário com o nome real que seria eliminado depois do browser fazer download.

    Espero ter-me feito entender...
    Obrigado.
     
    Última edição: 7 de Outubro de 2008
  2. Warlord

    Warlord [email protected] Member

    show_image.php?id=25252

    o ficheiro show_image.php envia os headers de imagem (ver manual de php), depois faz fopen do ficheiro "/path/25252" e "cospe" para o output.

    se abrires no browser http://site/show_image.php?id=25252 ves a imagem.
     
  3. silvino

    silvino Power Member

    Obrigado WarLord,

    Quando ao fopen faço um echo do seu conteúdo ? Quanto ao header acho que consigo descobrir o "type" a partir da extensão...
     
  4. Warlord

    Warlord [email protected] Member

    sim, faz echo de td, existem outras funcoes de php k leem o ficheiro todo de uma vez (file_get_contents)
     
  5. silvino

    silvino Power Member

    ficou assim.

    PHP:
        $sql="SELECT * FROM ficheiro WHERE id='".$img."'";
        
    $con ligabd();
        
    $res=$con->query($sql);
        if(
    $res){
            
    $img=$res->fetch_object();
            
    $tipo="Content-type: ".$img->tipo;

            
    header($tipo);
            
    //Abre o ficheiro texto.txt no modo r de leitura
            
    $ficheiro=fopen("img/".$img->id,"r") or exit("Não consegue abrir o ficheiro!");

            
    //le o conteúdo do ficheiro até ao limite do seu tamanho
            
    echo fread($ficheirofilesize("img/".$img->id));
        }
     
    Última edição: 7 de Outubro de 2008

Partilhar esta Página