PHP/MySQL - 显示来自 blob 的图像

标签 php mysql database image blob

<分区>

我制作了一个 php 页面,您可以在其中上传图像/文件,这些图像/文件将作为“mediumblob”类型保存在我的数据库中。现在我卡住了,无法弄清楚如何从数据库中显示这些图像。我在要打印图像的地方写了大写字母。

<?php
$dbLink = new mysqli('127.0.0.1', 'root', '', 'test');
if(mysqli_connect_errno()) {
die("MySQL connection failed: ". mysqli_connect_error());
}

$sql = 'SELECT `id`, `name`, `mime`, `size`, `created`, `data` FROM `file`';
$result = $dbLink->query($sql);

if($result) {
// Kolla om det finns några filer i databasen
if($result->num_rows == 0) {
echo '<p>There are no files in the database</p>';
}
else {

echo '<table width="100%">
<tr>
<td><b>Name</b></td>
<td><b>Mime/type</b></td>
<td><b>Size (bytes)</b></td>
<td><b>Created</b></td>
<td><b>Image</b></td>
</tr>';

while($row = $result->fetch_assoc()) {
echo "
<tr>
<td>{$row['name']}</td>
<td>{$row['mime']}</td>
<td>{$row['size']}</td>
<td>{$row['created']}</td>
//THIS IS WHERE I'M SUPPOSED TO PRINT OUT THE IMAGES
</tr>";
}



echo '</table>';
}
}

else
{
echo 'Error! SQL query failed:';
echo "<pre>{$dbLink->error}</pre>";
}
echo '<p>Click <a href="index.html">here</a> to go back</p>';
// Close the mysql connection
$dbLink->close();
?>

这是我在数据库中的表:

CREATE TABLE `file` (
`id` Int Unsigned Not Null Auto_Increment,
`name` VarChar(255) Not Null Default 'Untitled.txt',
`mime` VarChar(50) Not Null Default 'text/plain',
`size` BigInt Unsigned Not Null Default 0,
`data` MediumBlob Not Null,
`created` DateTime Not Null,
PRIMARY KEY (`id`)
) 

非常感谢任何帮助!

最佳答案

如果 BLOB 包含图像的二进制数据,那么您需要获取内容并可能将其写入文件,从而生成图像。

 file_put_contents($path."path/to/image/".$row['name'], base64_decode($row['image']));

然后正常调用。当然.. 在写入之前检查文件是否存在 :)

或者,您可以编写一个脚本来直接输出图像,如下所示。

关于PHP/MySQL - 显示来自 blob 的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21879724/

相关文章:

php - SQL 查询不工作!

mysql - 根据列值更改 FROM 查询的一部分

jquery - 为什么MySQL忽略查询关键字值的大小写考虑?

sql - 存储过程 : get 3 values from a table and save them to another table

sql-server - 为什么我的数据库项目的 .dbmdl 文件会发生变化,即使我没有对项目进行任何更改?

php - 从 mySQL 返回表,并从数据库值中选择一个选项

javascript - 如何通过 AJAX 将数据从 AJAX PHP 结果传递到单独的 PHP 函数?

mysql - 通过 SHOW TABLE STAUS 查询选择特定列

php - 在php中为mysql制作可点击的链接

php - 错误 : Your requirements could not be resolved to an installable set of packages. Laravel