Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: Leggere immagine da db

  1. #1

    Leggere immagine da db

    Ciao a tutti.

    Ho messo in una tabella del mio db un campo 'img' di tipo blob.ù
    Ora voglio che nella mia pagina php si veda l'immagine.
    Come faccio?

    Ho provato un un semplice print ("$img"); ma vedo le peggio schifezze lol

  2. #2
    Ciao,
    nella variabile $img hai il percorso su filesystem dell'immagine vero?

    Se così fosse, basta fare un
    Codice PHP:
    echo ("[img]$img[/img]"); 
    --Cosimo
    MAIL: cosimo.g18@gmail.com

  3. #3
    no
    dentro $img c'è il file immagine vera e propria perchè nella tabella del db il campo immagine è di tipo blob quindi è un binary.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da Sir IMOTEPH
    no
    dentro $img c'è il file immagine vera e propria perchè nella tabella del db il campo immagine è di tipo blob quindi è un binary.
    Che istruzione usi per estrarre questo dato?

    Dai un'occhiata qui.
    http://dev.mysql.com/doc/refman/5.0/en/blob.html

    Ti consiglio comunque di salvare solo il path ed il nome della stessa. Lo puoi gestire meglio.

  5. #5
    Originariamente inviato da mosquito70
    Che istruzione usi per estrarre questo dato?

    Dai un'occhiata qui.
    http://dev.mysql.com/doc/refman/5.0/en/blob.html

    Ti consiglio comunque di salvare solo il path ed il nome della stessa. Lo puoi gestire meglio.
    Quoto pienamente...
    --Cosimo
    MAIL: cosimo.g18@gmail.com

  6. #6
    Originariamente inviato da mosquito70
    Che istruzione usi per estrarre questo dato?
    Faccio una normalissima select al db
    Codice PHP:
    $query="SELECT a.id, a.ext, a.descrizione, b.img FROM centrale_file a, centrale_file_tipo b
    WHERE a.rif = b.id"
    ;
    if (!
    $resultmysql_db_query($db_name$query$db_link))
    print(
    "non funziona la $query".mysql_error());
                
    while (list(
    $id_ext$ext$descrizione$img) = mysql_fetch_array($result))
    {
    echo(
    "<td align=\"left\">".$ext."</td>");
    echo(
    "<td align=\"left\">".$descrizione."</td>");
    echo(
    "<td align=\"center\">".$img."</td>");
    echo(
    "</tr>");

    ma chiaramente la echo di $img mi stampa tutti i simboli strani.

    Forse non mi sono spiegato bene: nella 'tabella centrale_file_tipo', nel campo 'img' c'è l'immagine e non il path di dove andare a prendere l'immagine nel file system.

    Di fatti, il campo img è grande (per la prima immagine in tabella) 1,7KByte. Se ci fosse il path sarebbe grande (quando è tanto) 100Byte

    Se non ho capito male, quello che devo fare è dire al php di interpretare una stringa binaria letta dal db. Il problema è che non so come fargliela interpretare. Ci sarà qualche funzione o roba simile....

  7. #7
    Prova ad aggiungere in alto questa riga:

    Codice PHP:
    header('Content-Type: image/jpeg'); 
    ammesso che sia un jpeg...

    Saluti!
    --Cosimo
    MAIL: cosimo.g18@gmail.com

  8. #8
    nessun cambiamento.
    l'immagine è una gif quindi ho anche provato a cambiare /jpeg in /gif ma nulla!

  9. #9
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Non hai le idee molto chiare. Per poter visualizzare un'immagine in quel modo, il codice che la legge dal db si deve trovare in un file che fa solo quello. Provo a sintetizzare partendo dal codice che hai postato

    Codice PHP:
    $query="SELECT a.id, a.ext, a.descrizione, a.rif FROM centrale_file a"
    if (!
    $resultmysql_db_query($db_name$query$db_link)) 
    print(
    "non funziona la $query".mysql_error()); 
                 
    while (list(
    $id_ext$ext$descrizione$img) = mysql_fetch_array($result)) 

    echo(
    "<td align=\"left\">".$ext."</td>"); 
    echo(
    "<td align=\"left\">".$descrizione."</td>"); 
    echo(
    "<td align=\"center\"><a href=\"img.php?id=$img\"></a></td>"); 
    echo(
    "</tr>"); 

    Non ti serve qui leggere l'immagine, quindi ho tolto la join perché mi pare che nella tabella b ci fosse solo quella; invece ho aggiunto il campo rif che ti serve per recuperare l'immagine

    file img.php:

    Codice PHP:
    $query="SELECT b.img FROM centrale_file_tipo b 
    WHERE b.id = 
    $_GET[img] "
    if (!
    $resultmysql_db_query($db_name$query$db_link)) 
    print(
    "non funziona la $query".mysql_error()); 

    $row mysql_fetch_assoc($result);
    $img $row['img'];
    header('Content-Type: image/gif');
    echo 
    $img
    Però ti serve un sistema per sapere di che tipo è l'immagine, se non sei sicuro che sia sempre una gif

  10. #10
    Non basta controllare il mime dell'immagine?
    E poi a seconda del mime metto /gif /jpeg /...

    comunque ora provo il tuo codice
    grazie in anticipo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.