Ako mám nastaviť data:image/ typ súboru dynamicky?

0

Otázka

Mám databázu, ktorá obsahuje obrázky uložené ako BLOBs. Som úspešne použiť obrázok na stránke páči, takže :

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

Avšak to si vyžaduje nastavenie príponu súboru manuálne v skutočných strát na data:image/jpeg;. Problém je, že mám veľa rôznych obrázkov v rôznych formátoch. Chcem, aby sa ubezpečil, že typu je správne nastavená na základe skutočného súboru príponu súborov špecifické pre každý obrázok. Už som si vnorené pole, ktoré obsahuje všetky prípony pre tieto súbory.

Napriek tomu mám problémy nastavenie rozšírenie dynamicky. Snažil som sa jednoducho výmena '' jediné citáty s "" na dovoľte mi, aby som ľahko použiť premennú vo vnútri výkazu tak ako :

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

To nebude fungovať, pretože src značka sebe obsahuje dvakrát citácie už verím. Moje IDE mi hovorí, že chybu Cannot use '[]' for reading. Tiež som sa snažil pomocou concatinated jednoduchých úvodzoviek namiesto :

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

Ktoré tiež nefunguje. Bol som schopný nájsť žiadne riešenie tejto online seba. Existuje nejaký spôsob, ako dynamicky nastaviť príponu súboru? Hoci nastavenie jpeg pre každý obrázok, väčšinou funguje napríklad robí tak na image/x-ico kartu ikonu zobrazí obrázok nedá sa nahrať správne.

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

Najlepšiu odpoveď

1

Za predpokladu, že BLOB obsahuje skutočné binárne dáta obrazu.

Len uistite sa, že rozšírenia zápas s požadovanými syntax

jpg súbor : <img src="data:image/jpeg;base64,[base64_encoded_data]

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

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

Tak vzorový príklad je nasledovný:

<?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>

Výsledok môžete vidieť tu:

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

2021-11-18 15:58:08

Fungovalo to! Ja som sa sťahoval data:image/ a ;base64, HTML namiesto echo a obraz si záťaž! Ďakujeme!
541daw35d

V iných jazykoch

Táto stránka je v iných jazykoch

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