Come faccio a impostare data:image/ filetype in modo dinamico?

0

Domanda

Ho un database che contiene le immagini salvate come BLOBs. Posso utilizzare correttamente l'immagine su una pagina in questo modo :

<img src="<?php echo 'data:image/jpeg;base64,'.base64_encode($image)?>" alt="Landing" width="150px">

Tuttavia, questo richiede l'impostazione del file di estensione manualmente in istruzione effettivo a data:image/jpeg;. Il problema è che ho un sacco di diverse immagini in vari formati. Voglio fare in modo che il tipo di file è impostato correttamente, sulla base dell'effettiva estensione del file per ogni immagine. Ho già nidificato array che contiene tutte le estensioni dei file per i file.

Comunque sto avendo problemi di impostazione di estensione in modo dinamico. Ho provato semplicemente sostituendo il '' virgolette singole con "" per consentire a me di utilizzare una variabile all'interno della dichiarazione in questo modo :

<img src="<?php echo "data:image/$images['monitor']['extension'];base64,".base64_encode($image)?>" alt="Landing" width="150px">

Questo non funziona perché il src tag contiene virgolette già credo. Il mio IDE mi dice un errore Cannot use '[]' for reading. Ho anche provato a usare concatinated apici invece :

<img src="<?php echo 'data:image/' . $images['monitor']['extension'] . ';base64,'.base64_encode($image)?>" alt="Monitor" width="150px">

Che, inoltre, non ha lavoro. Sono stato in grado di trovare una soluzione a questo online me. C'è qualche modo per impostare dinamicamente l'estensione di un file? Anche se l'impostazione di jpeg per ogni immagine, per lo più opere, per esempio, lo fa per il image/x-ico sull'icona della scheda rende l'immagine non riesce a caricare correttamente.

blob image php
2021-11-18 14:56:51
1

Migliore risposta

1

Supponendo che il BLOB sono contenuti i dati binari dell'immagine.

Basta fare in modo che le estensioni del match con la sintassi richiesta

il file jpg : <img src="data:image/jpeg;base64,[base64_encoded_data]

png file : <img src="data:image/png;base64,[base64_encoded_data]

ico file : <img src="data:image/icona;base64,[base64_encoded_data]

Così un esempio di esempio è il seguente:

<?php
$image=file_get_contents("http://www.createchhk.com/SO/sample1.png");

$file_ext = 'png';
?>

Test for PNG<br>
<img src="data:image/<?php echo $file_ext; ?>;base64,<?php echo base64_encode($image)?>" alt="Landing" width="50px"><br>


<?php
$image2=file_get_contents("http://www.createchhk.com/SO/sample1.jpg");
$file_ext2 = 'jpeg';
?>


Test for JPG<br>
<img src="data:image/<?php echo $file_ext2; ?>;base64,<?php echo base64_encode($image2)?>" alt="Landing2" width="50px"><br>

<?php
$image3=file_get_contents("http://www.createchhk.com/SO/sample1.ico");
$file_ext3 = 'icon';
?>


Test for JPG<br>
<img src="data:image/<?php echo $file_ext3; ?>;base64,<?php echo base64_encode($image3)?>" alt="Landing3" width="50px"><br>

Il risultato può essere visto qui:

http://www.createchhk.com/SO/testSO_18Nov2021.php

2021-11-18 15:58:08

Questo ha funzionato! Ho spostato in data:image/ e ;base64, HTML, invece di echo e l'immagine ha fatto il carico! Grazie!
541daw35d

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................