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

    Memorizzare e visualizzare immagini via php su mySQL

    Salve,
    sto cercando di memorizzare immagini su un DB mySQL per poi ritrovarle e visualizzarle in una pagina web. Per salvarle ho usato la sintassi:

    codice:
    $handle = fopen($image, "rb");
     $var = fread($handle, filesize($image));
     fclose($handle);
     $var = base64_encode($var);
    query="INSERT INTO ... VALUES (...,".$var.", ....)";
    e per visualizzarla mi sono creato il file php picscript:
    codice:
    <?php
    include("dbinfo.inc.php");
    mysql_connect($server,$username,$password);
    $imgKind = $_REQUEST[imgKind];
    $imgId=$_REQUEST[imgId];
    @mysql_select_db($database) or die( "<=error>=Unable to select database<=/error>=");
    $query="SELECT ".$imgKind." AS imagedata".
    	" FROM coatings".
    	" WHERE id=".$imgId;
    //echo $query;
    $result=mysql_query($query);
    $imagebytes = mysql_result($result,0,"imagedata");
    header("Content-type: image/jpeg");
    print $imagebytes;
    ?>
    e poi ho provato a visualizzare l'immagine con:
    [CODE]echo '<img src=picscript.php?imgKind=tgReheating&imgId='.$id. '>
    ';[CODE]
    Tuttavia invece di visualizzarmi l'immagine il browser mi riporta l'errore:
    l'immagine .... non può essere visualizzata perchè contiene degli errori.
    In particolare, visualizzando l'immagine senza l'header jpg, vedo che le diverse righe hanno una / all'inizio come in:
    /9j/4AAQSkZJRgABAQEBLAEsAAD/4XBcRXhpZgAASUkqAAQAAAAIAc3QAowcAAQAAAAOGh4gBowcAA QAAAAGZmqICowcACAAAAERwAAABpAMAAQAAAAAAx8gCpAMAAQA AAAAA2uEDpAMAAQAAAAAA8vMEpAUAAQAAAExwAAAFpAMAAQAAA LQAAAA
    dandomi l'idea che le immagini vadano preventivamente processate, ma non ho trovato nulla negli esempi.

    Dove posso aver sbagliato e, soprattutto, come facio a acpire se l'errore è nel salvataggio o nella visualizzazione?

    Grazie, Fabrizio

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ti consiglio di aprire direttamente il file "immagine" (il tuo ".php") dal browser eliminando temporaneamente la penultima riga (istruzione "header("Content-type: image/jpeg");") così da poter visualizzare eventuali errori/warning php...

  3. #3
    Originariamente inviato da eiyen
    ti consiglio di aprire direttamente il file "immagine" (il tuo ".php") dal browser eliminando temporaneamente la penultima riga (istruzione "header("Content-type: image/jpeg");") così da poter visualizzare eventuali errori/warning php...
    Certo, è per l'appunto quello che ho subito fatto: visualizzo una scorinata di caratteri stranamente solo ascii con ogni riga che comincia con la /:

    /9j/4AAQSkZJRgABAQEBLAEsAAD/4XBcRXhpZgAASUkqAAgAAAAGAA8BAgASAAAAVgAAABABAgAKAA AAaAAAADEBAgAKAAAAcgAAADIBAgAUAAAAfAAAABMCAwABAAAA AgAMAGmHBAABAAAAkAAAAAAAAABOSUtPTiBDT1JQT1JBVElPTg BOSUtPTiBENTAAVmVyLjEuMDAgADIwMDY6MDk6MjUgMTY6NTQ6 NDQAJgCaggUAAQAAAF4CAACdggUAAQAAAGYCAAAiiAMAAQAAAA AACQsAkAcABAAAADAyMjEDkAIAFAAAAG4CAAAEkAIAFAAAAIIC AAABkQcABAAAAAECAwACkQUAAQAAAJYCAAAEkgoAAQAAAJ4CAA AFkgUAAQAAAKYCAAAHkgMAAQAAAAUAEhIIkgMAAQAAAAAAeAAJ kgMAAQAAAF8AAf8KkgUAAQAAAK4CAAB8kgcAYm0AALYCAACGkg cALAAAABhwAACQkgIAAwAAADIwAAGRkgIAAwAAADIwAEGSkgIA AwAAADIwAKEAoAcABAAAADAxMDABoAMAAQAAAAEAJicCoAMAAQ AAAMALQ0QDoAMAAQAAANAHV1gXogMAAQAAAAIAc3QAowcAAQAA AAOGh4gBowcAAQAAAAGZmqICowcACAAAAERwAAABpAMAAQAAAA AAx8gCpAMAAQAAAAAA2uEDpAMAAQAAAAAA8vMEpAUAAQAAAExw AAAFpAMAAQAAALQAAAAGpAMAAQAAAAAACgsHpAMAAQAAAAAABQ QIpAMAAQAAAAEABAUJpAMAAQAAAAAAIjIKpAMAAQAAAAAAM1IM pAMAAQAAAAAAJfEAAAAACgAAAOIEAAA4AAAACgAAADIwMDY6MD k6MjUgMTY6NTQ6NDQAMjAwNjowOToyNSAxNjo1NDo0NAAEAAAA AQAAAAAAAAAGAAAAMgAAAAoAAACwBAAACgAAAE5pa29uAAIQAA BNTQAqAAAACAArAAEABwAAAAQwMjEwAAIAAwAAAAIAAAGQAAQA AgAAAAgAAAISAAUAAgAAAA0AAAIaAAYAAgAAAAcAAAIqAAcAAg AAAAcAAAIyAAgAAgAAAA0AAAI6AAkAAgAAAA0AAAJKAAsACAAA AAEAAAAAAA0ABwAAAAQAAQYAAA4ABwAAAAQAAQwAABEABAAAAA EAAAZ+ABIABwAAAAQAAQYAABMAAwAAAAIAAAGQABYAAwAAAAQA AAJaABcABwAAAAQAAQYAABgABwAAAAQAAQYAABkACgAAAAEAAA JiAB0AAgAAAAgAAAJqAIEAAgAAAAkAAAJyAIMAAQAAAAECAAAA AIQABQAAAAQAAAJ+AIcAAQAAAAEJAAAAAIgABwAAAAQCAAABAI kAAwAAAAEAIAAAAIoAAwAAAAEAAAAAAIsABwAAAARAAQwAAI0A AgAAAAkAAAKeAJAAAgAAAAwAAAKqAJEABwAAAhUAAAK2AJIACA AAAAEAAAAAAJUAAgAAAAUAAATOAJcABwAAARwAAATWAJgABwAA AB8AAAXyAJoABQAAAAIAAAYSAKAAAgAAABUAAAYiAKIABAAAAA EAInxvAKMAAQAAAAEAAAAAAKcABAAAAAEAAABgAKgABwAAABQA AAY6AKkAAgAAABAAAAZOAKoAAgAAABAAAAZeAKsAAgAAABAAAA ZuAAAAAEZJTkUgICAAQVVUTyAgICAgICAgAAAAAEFVVE8gIAAA QUYtQSAgAABSRUQtRVlFICAgICAAAAAAQnVpbHQtaW4sVFRMAA AAAAAAAAALwAfQAAAAAAAAAAFENTAgICAgAEFVVE8gICAgAAAA AAAAAPAAAAAKAAAEsAAAAAoAAAAjAAAACgAAADgAAAAKTU9ERT NhICAAAAAAU1BFRURMSUdIVCAAMDIwNWKBOIgATpeH18zEqX1A 8pMoouttufQeNz8pHPC1aAqbA4roNXCct7+3nnQm7ZMioxNywP 0pRE5HLwbMgSW4OlMLWpjF4ezmz6duJMldi1KzA0Jw35mUfld/1n4RnRhquv86QFdRzxYvl7PUwM08g3DzEyARCeWuSQ+kLKMFWL rL/+r45eOMRu6HBoTpPYC60+Li0K39tNt37TfcsXXqytuDkfAgeZQ 3w1jLGz2lz+rj06GAPemEDofuRo7AR1pbRcuaWAWthmAgawQiJ hGK1xfPKA0gVX74w/sPFk9zSBP7nAN46JrppWwo7wzh9w/Lj7NS4FyeJF+nHBl34eOYWgurOrglgcwGL0dORCn9AHIToyKQ7 Tl0nre/tpxxNeiKG5sKaLXxHDY

    ecc. ecc.

    l'immagine che ho inserito nel db comprende anche caratteri non stampabili, al contrario di quella restituita dalla query qui riportata nelle prime righe.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    c'è un problema nel recupero dei dati (controlla su phpmyadmin cosa c'è nel db) o nella memorizzazione, se questi fossero corretti

  5. #5
    Originariamente inviato da eiyen
    c'è un problema nel recupero dei dati (controlla su phpmyadmin cosa c'è nel db) o nella memorizzazione, se questi fossero corretti
    Il problema è che per l'appunto myphpadmin mi riporta sol l'esistenza del blob e le sue dimensioni senza farmi leggere cosa ci sia dentro.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ma... vedo che nell'inserimento usi la codifica base64, che però poi non "decodifichi" in lettura.. hai banalmente provato a inserire base64_decode dopo la lettura e prima dell'output?

  7. #7
    Originariamente inviato da eiyen
    ma... vedo che nell'inserimento usi la codifica base64, che però poi non "decodifichi" in lettura.. hai banalmente provato a inserire base64_decode dopo la lettura e prima dell'output?
    Vero, grazie mille. Avevo preso i due codici da due parti diverse: messo il decode funziona alla perfezione.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Oh, bene!

  9. #9
    Perche' usi base64? Codificare i dati per decodificarli quando li estrai ha come unico risultato quello di occupare piu' spazio (una stringa base64 occupa circa il 50% in piu' dei dati originali).

  10. #10
    Originariamente inviato da k.b
    Perche' usi base64? Codificare i dati per decodificarli quando li estrai ha come unico risultato quello di occupare piu' spazio (una stringa base64 occupa circa il 50% in piu' dei dati originali).
    Semplicemente perchè, nel caso contrario che ho appena provato, nel DB non mi si memorizza nulla. Sinceramente non saprei dove sia il problema visto che il programma riporta l'inserimento con successo, ma visto che con l'encode funziona...

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.