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 Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    Decodificare immagine Base64

    Ho un db con un campo così descritto:
    'campo immagine (byte[]) con l’anteprima del printJob stampato'

    Esempio: 0x49492A0050420F000000000 ecc...

    Ho provato a visualizzare le immagini così:

    Codice PHP:
    echo '<img src="data:image/tiff;base64,'.base64_encode($img_str).'">';
    echo 
    "<img src='data:image/tiff;base64, $img_str' />"
    In entrambi i casi però non va... idee consigli e suggerimenti? Ho visto che il tiff non è ben compatibile sui broswer. Io deduco sia tiff dall'inizio della stringa. Purtroppo la documentazione non mi dice altro.

    Grazie
    Sonia

  2. #2
    <IMG SRC=MyVar>

    Senza usare altro

  3. #3
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    In quel modo vedo il simbolo dell'immagine mancante e poi sbordano caratteri.
    Se metto un base64_encode($row2['Preview']) invece vedo solo l'immagine mancante.

    Grazie

  4. #4
    Che database stai utilizzando?
    Qual è il tipo di campo (es. BLOB)?

  5. #5
    Prova a vedere se il file così generato è una immagine valida:

    codice:
    $img_str = substr($img_str, 2);
    $decoded = hex2bin($img_str);
    file_put_contents('test.tiff', $decoded);

  6. #6
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Il db è un MS SQL Server e il tipo di campo è definito come image
    Grazie

  7. #7
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Ho provato e ho l'errore sul formato!

    Warning: hex2bin(): Input string must be hexadecimal string in /var/www/html/lady/ricerca/ric_ricetta.php on line 80

    e la riga incriminata è questa
    Codice PHP:
    $decoded hex2bin($img_str); 


    Ri-grazie

  8. #8
    Google => "sqlserver image field to base64 php" => Mi sento fortunato.... => https://stackoverflow.com/a/40456943

  9. #9
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Non riesco a postare il codice perchè mi blocca. Comunque ho sempre errore "hex2bin(): Input string must be hexadecimal string in..."
    Come nel tuoi esempio.

  10. #10
    Chiedi a chi ha sviluppato il software che inserisce i dati in quel campo come fare a convertirlo perchè se il formato è byte[] in esadecimale il codice postato è corretto. Se è in un altro formato, devi farti dire come fare a decodificarlo.

    Ti sei assicurato di includere la chiamata a substr() ?

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.