Jak mám nastavit data:image/ filetype dynamicky?

0

Otázka

Mám databázi, která obsahuje obrázky uložit jako BLOBs. Můžu úspěšně použít obrázek na stránce, tak jako :

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

Nicméně to vyžaduje nastavení souboru rozšíření ručně v aktuálním prohlášení na data:image/jpeg;. Problém je, že mám spoustu různých obrázků v různých formátech. Chci se ujistit, že typ souboru, který je správně nastavena na základě skutečných přípona souboru specifické pro každý obrázek. Já už mám vnořené pole, které obsahuje všechny přípony souborů pro tyto soubory.

Nicméně mám potíže s nastavením rozšíření dynamicky. Snažil jsem se prostě nahradí '' jednoduché uvozovky s "" dovolte mi, abych se snadno použít proměnnou uvnitř prohlášení jako :

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

To nebude fungovat, protože src tag sám o sobě obsahuje dvojité uvozovky, už věřím. Moje IDE mi říká, že chyby Cannot use '[]' for reading. Také jsem se pokusil pomocí concatinated jednoduché uvozovky místo :

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

Což také nefunguje. Byl jsem schopen najít nějaké řešení, aby to on-line sám. Existuje nějaký způsob, jak dynamicky nastavit příponu souboru? I když nastavení jpeg pro každý obrázek většinou funguje například tak pro image/x-ico ikona karta vykreslí obraz nelze načíst správně.

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

Nejlepší odpověď

1

Za předpokladu, že BLOB obsahuje aktuální binární data obrázku.

Jen ujistěte se, že rozšíření zápas s požadovanou syntaxi

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

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

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

Tak ukázkový příklad je následující:

<?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ýsledek lze vidět zde:

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

2021-11-18 15:58:08

To fungovalo! Já jsem se stěhoval data:image/ a ;base64, do HTML namísto echo a obrázek udělal zatížení! Děkuji!!!
541daw35d

V jiných jazycích

Tato stránka je v jiných jazycích

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