所以我尝试使用 PHP 和 HTML 上传和显示图像和文件(位于 mysql 数据库(blob)内),但是当我尝试这样做时:
<td>
<?php echo $cintia['id']; ?>
</td>
<td>
<?php echo $cintia['nombre']; ?>
</td>
<td>
if(strpos($archivo, 'image') !== false) {
<image src="data:image/jpg;base64,<?php echo base64_encode($cintia['archivo']); ?>"/>
else {
<embed src="data:application/pdf;base64,<?php echo base64_encode($cintia['archivo']); ?>"/>
}
</td>
即使有指令,它也会显示它们;所以我认为它与回声有关 当我插入图像或文件时,它看起来是什么样子
我尝试更改与 echo 和 if 指令相关的内容,但它们似乎不起作用。我还想知道是否有一种方法可以显示图像和文件,而无需专门使用
<img src="data:image/jpg...>
或 <embed src="data:application/pdf...>
进行编写,因为这更像是一种绝望的方法,而不是真正的解决方案。
我正在使用 mysql 和 longblob 来处理文件(但我真的认为这是我不明白的关于 echo 的事情)
为什么要将图像以base64存储在数据库中?
做你想做的事最好的事情是:
上传文件时:
当您想要显示图像时
如果您仍然需要/想要使用 base64,在您的基本代码中,您忘记将 PHP if 语句包装到标签中。 我会说:
<td>
<?php echo $cintia['id']; ?>
</td>
<td>
<?php echo $cintia['nombre']; ?>
</td>
<td>
<?php
if(strpos($archivo, 'image') !== false) { ?>
<image src="data:image/jpg;base64,<?php echo base64_encode($cintia['archivo']); ?>"/><?php
} else { ?>
<embed src="data:application/pdf;base64,<?php echo base64_encode($cintia['archivo']); ?>"/><?php
} ?>
</td>