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

Discussione: Immagini da Database

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    144

    Immagini da Database

    Ciao a tutti!
    Allora ho un piccolo problema che non riesco a risolvere...
    Allora io ho salvato nel database un immagine che faccio caricare da un form.
    Adesso vorrei, in un altra pagina, prelevare dal database quella foto e visualizzarla...
    Allora ho inserito questo codice e Funziona!!! Si... funziona se lo metto in una pagina da solo:

    Codice PHP:
           
    mysql_connect
    ("127.0.0.1""Mio_utente""mia_psw")
    or die(
    "Connessione non riuscita: " mysql_error());

    if(!
    mysql_select_db("mio_Db"))
    die(
    "Selezione database fallita!");

    // Query per ottenere l'elenco dei files
    $query "SELECT * FROM   user
            WHERE  user_id='
    $user_id' ";

    $risultato mysql_query($query)
    or die(
    "Query non valida: " mysql_error());

    // Se ci sono file nel DB
    if(mysql_numrows($risultato))
    {
        
    // Estrazione dei risultati e stampa dei links
        
    while ($tmp mysql_fetch_array($risultato))
        {
         
    header("Content-Type: " $tmp["tipofoto"]);

            echo 
    $tmp["datifoto"]; 
        }
    }
    else
    {
        echo 
    "

    Nessun file presente nel database</p>"
    ;

    Ma se lo inserisco all'interno di una tabella (in pratica ho divso la pagina in 3 parti verticalmente e mi posiziono in quella di sinistra) mi viene tutta pagina bianca con scritto immagine al centro, ma non si vede nulla! Invece se al posto di:
    Codice PHP:
       header("Content-Type: " $tmp["tipofoto"]);

            echo 
    $tmp["datifoto"]; 
    Ci metto qualsiasi istruzione per stampare ad esempio il nome o il cognome ecc... dell'utente con il determinato $user_id, mi carica l mia pagina con i vari sfondi eccc e mi stampa correttamente il dato richiesto...

    Qualcuno sa mica dirmi perchè mi fa questo?

    Grazie!

  2. #2
    Utente bannato
    Registrato dal
    Mar 2011
    Messaggi
    389
    non so la risposta, però ti dico che non conviene salvare le foto sul db

  3. #3
    Perdonami la domanda, ma hai salvato l'immagine in un campo BLOB nel database o hai salvato solo il nome dell'immagine ?
    Cristian Giustini
    Web developer

    G&T Services (sito ripristinato)
    Per qualsiasi info/collaborazione contattatemi al seguente indirizzo:
    cristian.giustini@gtservices-online.com

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    144
    Ho salvato l'immagine in un campo Blob, poi ne ho salvato anche il nome ed il tipo.
    E' proprio il fatto he salvandolo come blob poi devo convertirlo per vedere l'immagine giusto? Ma il codice è esatto... ma perchè dentro alla mia tabella non i vede e mi viene pagina bianca con scritto immagine al centro?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    144
    MI CORREGGO!
    Ho provato a visualizzare su Internet Explorer, e vedo sfondo bianco con scritto tutto il codice sorgente della pagina,e al posto delle righe:
    [PHP]

    $tipofoto=$row["tipofoto"];
    $datifoto=$row["datifoto"];
    header("Content-Type: " . $tipofoto);
    echo $datifoto;
    [PHP]

    vedo:
    ���� ,ExifMM*bj(1r2��i��B>' B>'Adobe Photoshop CS5 Windows2011:04:02 20:43:54�����&( .
    �HH���� Adobe_CM��Adobed����   
       

    
       ���d"����?
    

    E molto altro ancora, tutto su questo stile ("cirillico"?)

    Perchè?

  6. #6
    Allora il problema e' che per fare queste cose devi capire come funzionano le richieste HTTP.

    Quando tu chiedi ad un webserver una particolare risorsa, se questa e' disponibile il server ti restituira' prima gli header corretti e poi il contenuto di quella risorsa. Se si tratta di una pagina HTML ti restituira' una header che specifica il content-type "text/html" e poi ti invia la sequenza di byte che compone il contenuto di quella risorsa (e cioe' un testo con il codice HTML).

    Se tu richiedi un'immagine, il server ti restituira' una header content-type "image/jpeg" (o gif, png a seconda dei casi) e la sequenza di byte che compongono quell'immagine.

    Detto questo il fatto e' che non puoi mescolare due richieste in una come fai tu: se crei una pagina HTML e vuoi inserire delle immagini, devi farlo con il tag <img> (che esegue un'altra richiesta al webserver e la incorpora nella pagina), non puoi semplicemente inviare altri header e poi i dati dell'immagine. Se la tua immagine non e' un file presente sul filesystem ma viene creata al volo da uno script PHP non cambia niente, devi comunque usare i tag <img>, solo che come src userai il file PHP che genera l'immagine invece di linkare direttamente un file jpg/gif/png.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    144
    Quindi se ho capito bene metterò <img> qui </img> il codice php che ho scritto sopra per prendere da databse l'immagine giusto?
    Cmq adesso provo e ti so dire.
    Grazie per l'aiuto

  8. #8
    No, non hai capito bene. Vuoi dire che non hai mai usato un tag <img> in una pagina HTML?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    144
    Si! [img]image.jpg[/img]
    Solo che io non ho l'immagine, perchè è nel database!

  10. #10
    Appunto, per quello ho detto:
    Se la tua immagine non e' un file presente sul filesystem ma viene creata al volo da uno script PHP non cambia niente, devi comunque usare i tag <img>, solo che come src userai il file PHP che genera l'immagine invece di linkare direttamente un file jpg/gif/png.

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.