Comment puis-je mettre des données:image/ filetype dynamiquement?

0

La question

J'ai une base de données qui contient les images enregistrées comme BLOBs. Je peux utiliser correctement l'image sur une page comme ceci :

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

Toutefois, cela exige de réglage de l'extension de fichier manuellement dans la déclaration à data:image/jpeg;. Le problème est que j'ai beaucoup de différentes images dans différents formats. Je veux assurez-vous que le type de fichier est correctement réglé, sur la base du fichier de l'extension de fichier spécifique pour chaque image. J'ai déjà un tableau imbriqué qui contient toutes les extensions de fichier pour les fichiers.

Néanmoins, je vais avoir de la difficulté à mettre de l'extension de façon dynamique. J'ai tout simplement essayé de remplacer le '' les guillemets simples avec "" pour me permettre d'utiliser facilement une variable à l'intérieur de l'énoncé comme suit :

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

Cela ne fonctionne pas car la src la balise elle-même contient des guillemets déjà je crois. Mon IDE me dit une erreur Cannot use '[]' for reading. J'ai aussi essayé d'utiliser concatinated des guillemets simples :

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

Qui n'a pas de travail. J'ai été incapable de trouver une solution à ce en ligne moi-même. Est-il possible de définir de façon dynamique l'extension de fichier? Bien que la définition d' jpeg pour chaque image, l'ensemble fonctionne par exemple pour le image/x-ico onglet icône affiche l'image peut pas charger correctement.

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

La meilleure réponse

1

En supposant que la GOUTTE contient les données binaires de l'image.

Assurez-vous que les extensions de match avec la syntaxe requise

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

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

fichier ico : <img src="data:image/icône;base64,[base64_encoded_data]

Ainsi, un exemple d'échantillon est comme suit:

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

Le résultat peut être vu ici:

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

2021-11-18 15:58:08

Cela a fonctionné! J'ai déménagé de données:image/ et ;base64, pour le HTML à la place de l'écho et de l'image n'a charger! Merci!!!!
541daw35d

Dans d'autres langues

Cette page est dans d'autres langues

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