Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di flavietta
    Registrato dal
    Jan 2008
    residenza
    Pisa
    Messaggi
    48

    mostrare immagini del database

    Ciao!
    Sto cercando di far visualizzare un'immagine che ho memorizzato in un database. Solo che mi fa vedere solo il codice binario (o quello che è). Specifico che nel database l'immagine l'ho salvata con BLOB e nel campo dove ci sarebbe il file mi appare solo [BLOB - 64,0 KiB].

    In una pagina mi fa vedere dei link che rimandano alle immagini (cliccandoci sopra dovrebbe far apparire, in un'altra pagina, la foto). Questo è il codice (all'interno del tag <body>):

    Codice PHP:
    <?php
    include('connessione.php');
    $sql "SELECT codiceFoto, Titolo, Autore FROM FotoDaApprovare ORDER BY codiceFoto ASC";
    $res mysql_query($sql,$conn) or die ("Errore! Selezione dati dalla tabella FotoDaApprovare non riuscita. " .mysql_error ());
    while (
    $row mysql_fetch_array($res)) {
    echo 
    "
    <a class='linkFoto' href=\"mostra_foto.php?id=
    $row[codiceFoto]\">[/b]FOTO[b]: $row[Titolo], [b]AUTORE[/b]: $row[Autore]</a>";
    }
    ?>
    Fin qui tutto ok.

    Questo è il codice della pagina mostra_foto.php che mi dovrebbe prendere il file immagine e mostrarlo (si trova sempre all'interno del <body>).

    Codice PHP:
    <?php
    if (isset($_GET['id'])) { //se l'id è passato
    $id $_GET['id'];
    include(
    'connessione.php');
    $sql "SELECT codiceFoto, File, TipoFile FROM FotoDaApprovare WHERE codiceFoto=\"$id\" ";
    $res mysql_query($sql,$conn) or die ("Errore! Selezione dati dalla tabella FotoDaApprovare non riuscita. " .mysql_error());
    $row mysql_fetch_array($res);
    if (
    $row['codiceFoto'] != $id) {
    echo 
    "<u>L&apos;id dell&apos;immagine non esiste.</u>";
    }
    else {
    header ("Content-type: " .$row['TipoFile']);
    echo 
    "$row[File]";
    }
    }
    ?>
    Ho seguito un manuale che si trova qui MrWebmaster
    Ricordo che mi visualizza solo il codice e non l'immagine vera e propria. Ho provato anche mettendo il tag <img>, ma niente, l'immagine non la mette e affianco al quadratino dell'immagine c'è sempre il codice.

    L'errore è nel database (quindi nella tabella delle immagini) o nei codici PHP secondo voi?

  2. #2
    ciao, io ho usato una cosa moolto piu semplice se cosi si puo dire.
    ho realizzato un ecommerce e in vetrina mi dovevano apparire ovviamente l'immagine e la descrizione dell immagine!
    ho messo le immagini in una cartella ,esempio di percorso: htdocs/img
    e nel databasa ho messo l articolo nella tabella cosi:

    id | nome | codice |marca | prezzo |ecc
    1 tavolo 010101 wood 299€ .....

    per richiamare l'immagine e le relative descrizioni ho fatto cosi, mi sono basato sul "codice"
    allora le immagini le salvi nel percorso htdocs/img badando pero che l'immagine la devi rinominare uguale al codice quindi avrai 010101.jpg

    e le richiami un php cosi

    $sql=mysql_query("select * from articoli where nome='tavolo' ");
    $riga = mysql_fetch_array($sql);
    $codice = $riga['codice'];

    echo ' [img]htdocs/img/$codice.jpg[/img] ';

    in questo modo ad esempio richiami l immagine del tavolo basandoti sul codice, è quel che si chiama immagine dinamica, ovvio che pero nel mio sito non ho fatto la quey cosi, perche avendo tanti articoli ho dovuto usare dei cicli di for, pero la logica che volevo proporti è questa, se puo andar bene alle tue esigenze.
    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

  3. #3
    Utente di HTML.it L'avatar di jeppox
    Registrato dal
    Mar 2007
    Messaggi
    436
    prova a stampare la tua immagine con readfile per es.:

    Codice PHP:
    ...
    else {
    header("Content-Type: $row['TipoFile']");
    readfile($row['File']);
    exit;


  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Ci sono alcune cose che non quadrano. Ad esempio, cosa significa QUESTO?
    Questo è il codice della pagina mostra_foto.php che mi dovrebbe prendere il file immagine e mostrarlo (si trova sempre all'interno del <body> ).
    Poi, cosa contiene la colonna TipoFile nel db?
    E infine, bisogna indicare anche la dimensione del file. Una cosa di questo genere:

    Codice PHP:
    header ("Content-type: " .$row['TipoFile']); 
    header("Content-length: " strlen($row['File']);
    echo 
    "$row['File']"

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da jeppox
    prova a stampare la tua immagine con readfile
    Ha detto che il file è nel db, mi sembrava italiano

  6. #6
    Utente di HTML.it L'avatar di flavietta
    Registrato dal
    Jan 2008
    residenza
    Pisa
    Messaggi
    48
    si trova sempre all'interno del <body>
    Intendo dire che lo script PHP si trova in una pagina in cui ci sono altri tag html e, precisamente, all'interno del tag <body>. L'ho specificato, perchè ho letto, in un altro forum, che a un tipo l'immagine la mostrava solo se metteva il codice PHP in una pagina a parte, senza altri tag html.
    Ma, siccome ho seguito quel manuale che vi ho detto prima, e mi sembra che il codice corrisponda, pensavo che (forse) l'errore fosse nel mio database, probabilmente sul campo File (di tipo BLOB), dove si troverebbe l'immagine; quindi potrei aver sbagliato qualcosa nel modo in cui salvo l'immagine nel DB.

    Poi, cosa contiene la colonna TipoFile nel db?
    Contiene "image"...sarebbe il type del file immagine.


    @maurorhcp89: Io, in realtà, le immagini le vorrei tenere salvate anche all'interno del database e andarle a prendere da lì, attraverso il loro id, per poi mostrarle.

    In pratica quello che devo fare è andare a prendere delle immagini, che sono state inserite dagli altri utenti e che si trovano in una tabella del DB, elencarle tutte (con Titolo della foto e Autore) con dei link che rimandano ad una pagina dove viene mostrata la foto, se ci clicco sopra. Così vedo che foto è e, se mi va bene, la approvo e la mantengo nel database (ma questo viene dopo).

  7. #7
    Utente di HTML.it L'avatar di flavietta
    Registrato dal
    Jan 2008
    residenza
    Pisa
    Messaggi
    48
    Ho corretto il campo TipoFile (il type dell'immagine) e adesso mi compare scritto "image/jpeg" come dovrebbe essere (in pratica gli avevo messo lunghezza massima 5, perchè avevo sbagliato scrivendo, quindi mi metteva solo "image").
    Ora mi stampa solo l'icona che indica che ci dovrebbe essere un'immagine, ma poi la foto effettiva non la mostra.

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da flavietta
    L'ho specificato, perchè ho letto, in un altro forum, che a un tipo l'immagine la mostrava solo se metteva il codice PHP in una pagina a parte, senza altri tag html.
    Infatti è così. Non devi avere tag html in una immagine, anche perché non hanno senso. Lo script deve buttare in output ESCLUSIVAMENTE il contenuto del campo blob.
    E ovviamente, il content-type dev'essere corretto. Quindi image/jpeg va bene, image e basta no Aggiungi anche la lunghezza come ti ho indicato

  9. #9
    Utente di HTML.it L'avatar di flavietta
    Registrato dal
    Jan 2008
    residenza
    Pisa
    Messaggi
    48
    Ma per lunghezza dell'immagine tu intendi la dimensione? Perchè ho un campo nel DB dove c'è indicata la dimensione dell'immagine e quindi nell'header posso mettere quella?

    Comunque ho separato il codice PHP che mi stampa l'immagine.
    Però nella pagina Web dove voglio che l'immagine effettivamente appaia ho fatto così:

    Codice PHP:
    <?php
    if (isset($_GET['id'])) {

    $id $_GET['id'];

    echo 
    "[img]recupera_foto.php?id=$id[/img]";
    }
    ?>
    Dove recupera_foto.php è la pagina in cui si trova il codice per recuperare l'immagine dal DB e stamparla. Non cambia niente, mi mostra solo l'iconcina. Ho provato anche ad aprire solo la pagina "recupera_foto.php" e mi appare ugualmente solo l'icona. O_o

  10. #10
    Utente di HTML.it L'avatar di flavietta
    Registrato dal
    Jan 2008
    residenza
    Pisa
    Messaggi
    48

    Per favore, nessuno mi sa dare una mano? Almeno per capire l'errore dove sta.

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.