我怎么设置的数据图像/filetype动态?

0

的问题

我有一个数据库,其中包含保存的图像作为 BLOBs. 我可以成功地使用图像在一个页面上是这样的:

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

然而,这要求设置该文件的扩展手动在实际的发言 data:image/jpeg;. 问题是,我有很多的各种图像在各种不同的格式。 我想要确保文件类型设置适当基于实际的文件扩展的具体文件中的每一个图像。 我已经有一个嵌套阵列,其中包含所有文件的扩展这些文件。

尽管如此我有麻烦设置的扩展动态。 我试着简单的更换 '' 单一的报价 "" 让我轻松地使用的变量内部的声明,像这样:

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

这不起作用,因为 src 标记本身包含双引号,我已经相信的。 我IDE告诉我一个错误 Cannot use '[]' for reading. 我们还试图使用concatinated单一的报价,而不是:

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

其中也没有工作。 我无法找到任何解决这一在线自己。 是否有任何方法动态设定文件的扩展? 虽然设置 jpeg 每一个图像大多是作为实例,这样做的 image/x-ico 卡标呈现的图像无法正常加载。

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

最好的答案

1

假设BLOB包含实际的二进制数据图像。

只是确保扩展匹配所需的语法

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

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

ico文件:<img src="data:image/标;base64,[base64_encoded_data]

因此,一个样例如下:

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

结果可以在这里看到:

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

2021-11-18 15:58:08

这工作! 我移动的数据:图像/;base64,以HTML而不是回音和图像做的负载! 谢谢你!
541daw35d

其他语言

此页面有其他语言版本

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