Cum pot seta date:image/ filetype dinamic?

0

Problema

Am o baza de date care conține imagini salvate ca BLOBs. Pot folosi cu succes imaginea pe o pagina astfel :

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

Cu toate acestea, acest lucru necesită stabilirea extensia de fișier manual în declarația real la data:image/jpeg;. Problema este că am o mulțime de diferite imagini în diverse formate. Vreau să mă asigur că filetype este stabilit corect pe baza informațiilor actuale extensia de fișier specific pentru fiecare imagine. Am deja un imbricate matrice care conține toate extensiile de fișier pentru fișierele respective.

Cu toate acestea, am probleme cu setarea extensia dinamic. Am încercat pur și simplu înlocuirea '' ghilimele simple cu "" pentru a-mi permite să utilizați cu ușurință o variabilă în interiorul declarația astfel :

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

Acest lucru nu funcționează pentru că src tag-ul în sine conține dublu-citate deja cred. Mi IDE spune-mi o eroare Cannot use '[]' for reading. Am încercat, de asemenea, folosind concatinated ghilimele simple în loc :

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

Care, de asemenea, nu au de lucru. Am fost în imposibilitatea de a găsi vreo soluție pentru acest lucru on-line mine. Există vreo modalitate de a seta dinamic extensia de fișier? Deși setarea jpeg pentru fiecare imagine în mare parte funcționează, de exemplu, face acest lucru pentru image/x-ico tab icoana redă imaginea în imposibilitatea de a încărca în mod corespunzător.

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

Cel mai bun răspuns

1

Presupunând că BLOB conține reale date binare de imagine.

Doar asigurați-vă că extensiile se potrivesc cu cele necesare sintaxa

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

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

fișier ico : <img src="date:imaginea/icoana;base64,[base64_encoded_data]

Deci un eșantion de exemplu, cum ar fi următoarele:

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

Rezultatul poate fi vazut aici:

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

2021-11-18 15:58:08

Aceasta a lucrat! M-am mutat de date:image/ și ;base64, la HTML în loc de echo, iar imaginea a făcut sarcină! Vă mulțumesc!
541daw35d

În alte limbi

Această pagină este în alte limbi

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