¿Cómo puedo conjunto de datos:image/ tipo de archivo de forma dinámica?

0

Pregunta

Tengo una base de datos que contiene las imágenes guardadas como BLOBs. Puedo utilizar correctamente la imagen en una página así :

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

Sin embargo, esto requiere ajuste de la extensión de archivo manualmente en la declaración real en data:image/jpeg;. El problema es que tengo un montón de diferentes imágenes en diversos formatos. Quiero para asegurarse de que el tipo de archivo está configurado correctamente, basado en el real de la extensión de archivo del archivo específico para cada imagen. Ya tengo una matriz anidada que contiene todas las extensiones de archivo para los archivos.

No obstante, estoy teniendo problemas a la hora de la extensión de forma dinámica. He tratado de una simple sustitución de la '' las comillas simples con "" que me permita fácilmente el uso de una variable dentro de la instrucción así :

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

Esto no funciona porque el src etiqueta en sí mismo contiene comillas dobles ya que yo creo. Mi IDE me dice un error Cannot use '[]' for reading. También he intentado usar concatinated comillas simples :

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

Que no trabajo. Yo era incapaz de encontrar alguna solución a este en línea mí. Hay alguna forma para establecer dinámicamente la extensión de archivo? Aunque la configuración de jpeg para cada imagen funciona mayoritariamente por ejemplo haciendo así que para el image/x-ico icono de la ficha hace que la imagen no se puede cargar correctamente.

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

Mejor respuesta

1

Suponiendo que la nota contiene los datos binarios de la imagen.

Sólo asegúrese de que las extensiones que coincida con la sintaxis necesaria

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

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

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

Para una muestra de un ejemplo como el siguiente:

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

El resultado se puede ver aquí:

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

2021-11-18 15:58:08

Esto funcionó! Me he mudado de datos:image/ y ;base64, para el HTML en lugar de el eco y la imagen se hizo la carga! Gracias!
541daw35d

En otros idiomas

Esta página está en otros idiomas

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