Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    estrazione e stampa immagini da database - problema header

    Ciao a tutti,

    ho un database e vorrei estrarre immagini da una tabella img_SC che contiene campi per le caratteristiche dell'immagine (identificate attraverso dei set) ed il campo "img" del file immagine stesso (tipo LONGBLOB).

    Creo la connessione al database ed estraggo tutti i record che soddisfano la query (per ora fissa, poi variabile a seconda dei classici menu a tendina della pagina di ricerca).
    Il codice della pagina di prova (solo script) è

    Codice PHP:
            $conn mysql_connect('localhost','xxx','xxx') or die (mysql_error());
                    
    mysql_select_db("xxx"$conn);
                        
                        
            
    $sql "SELECT * FROM `xxx`.`img_SC` WHERE source='copyrighted photo'";

            
    $result mysql_query($sql) or die(mysql_error ());
            
            
    $row mysql_fetch_array($result);
            
            while (
    $row mysql_fetch_array($result)){
                            
                    echo 
    $row["id_img"]."
    "
    ;
                            
    header('Content-Type:  image/jpeg');
                    echo 
    $row[img];
                    } 


    Al momento di stampare la/le immagini ho la stampa dell'id_img, però a seguito ricevo un errore ripetuto ad ogni iterazione del ciclo while (anche la prima):

    Warning: Cannot modify header information - headers already sent by (output started at xxx/provaread.php:10) in xxx/provaread.php on line 24

    Da varie ricerche credo di aver capito che l'errore che faccio riguarda la reimpostazione dell'header (content-type), ho provato a spostarlo ma nulla.
    Dove sbaglio? Come posso fare ad ottenere la stampa delle immagini?

    Grazie in anticipo a chi mi risponderà

  2. #2
    risolto temporaneamente il problema dell'header, ho quest'altro errore:

    L'immagine "indirizzopagina.php" non può essere visualizzata poiché contiene degli errori.

    Riducendo al massimo il codice, lo script diventa

    Codice PHP:
            $conn mysql_connect('...','...','ClL#_6tk.5Vm') or die (mysql_error());
                    
    mysql_select_db("..."$conn);
                    
            
            
    $sql "SELECT * FROM `...`.`img_SC` WHERE source='copyrighted photo'";

            
    $result mysql_query($sql) or die(mysql_error ());
            
    $row mysql_fetch_array($result);

            
    header('Content-Type:  image/jpeg');
            while (
    $row mysql_fetch_array($result)){
                    
                    echo 
    $row['img'];

                    } 
    L'estensione è jpeg, non png o jpg.

  3. #3
    Quando ti viene visualizzato il messaggio di errore ti dice in quale riga si trova.
    Posta la riga dove si trova l'errore..
    Se invece vedi che l'errore è nella riga della query prova a mettere underscore in "copyrighted photo" fallo diventare "copyrighted_photo" e lo stesso fallo nel database!

  4. #4
    un bel curl ti aiuterebbe.
    come prima cosa però controlla di non aver lasciato nessuna riga vuota dopo la chiusura del codice php. questo perchè lo \n finirebbe nell'immagine...

  5. #5
    grazie dell'aiuto, per l'header poi ho risolto grazie ai comandi ob_start() ed ob_end_flush()

    Per il resto, stamattina ho trovato questa "pillola" illuminante in archivio

    [PILLOLA] Visualizzare immagini memorizzate in database

    le due cose mi hanno risolto il tutto

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.