显示带有blob图像的MySQL表

时间:2013-03-07 15:35:56

标签: php mysql image blob

我只是从PHP开始,作为练习的一部分,我想设计一个小网站,允许你上传图像,然后显示所有上传的图像

我上传了图片上传图片并将图片存储在数据库中但是我无法找到在表格中显示图片的方式以及其他数据

$i=0;
while ($row = mysql_fetch_array($result))
{
echo '<td>'.mysql_result($result,$i,0).'</td>';
echo '<td>'.mysql_result($result,$i,1).'</td>';
echo '<td>'.mysql_result($result,$i,2).'</td>';
echo '<td>'.mysql_result($result,$i,3).'</td>';
echo '<td>'.base64_encode($result,$i,4).'</td>';
echo '<tr>';
$i++;

如何修改代码以便显示图像?

这是用于上传图片的代码

    if (isset($_FILES['photo']))
    {
        @list(, , $imtype, ) = getimagesize($_FILES['photo']['tmp_name']);
        // Get image type.
        // We use @ to omit errors

        if ($imtype == 3) // cheking image type
            $ext="png";   // to use it later in HTTP headers
        elseif ($imtype == 2)
            $ext="jpeg";
        elseif ($imtype == 1)
            $ext="gif";
        else
            $msg = 'Error: unknown file format';

        if (!isset($msg)) // If there was no error
        {
            $data = file_get_contents($_FILES['photo']['tmp_name']);
            $data = mysql_real_escape_string($data);
            // Preparing data to be used in MySQL query

            mysql_query("INSERT INTO {$table}
                            SET ext='$ext', title='$title',
                                data='$data'");

这是我测试enter link description here

的地方

我正在查看Stack Overflow示例,但是我找不到任何包含输出到表中的数据的循环。

1 个答案:

答案 0 :(得分:0)

当你开始使用PHP时,你应该从右脚开始:)

  • 不要使用mysql_ *函数,不推荐使用这些函数。相反,请使用mysqli_ *或PDO

  • 将图像存储在数据库中是一个“坏主意”,您最好将文件存储在文件系统(例如HD)中,并将名称引用到数据库中的字段。

  • 使用mysql_fetch_assoc代替mysql_fetch_array,以便按名称调用字段。即:$ row ['db_field_name'];

关于您的问题,您需要一个额外的脚本来显示存储的图像。像这样:

<?php
...
$row = mysql_fetch_assoc($result);
header("Content-type: image/jpeg"); //Set the correct image type.
echo $row['data'];
exit;
?>

在你的显示器中显示html:

...
<img src="yourscript.php?image=XX" ...>
...

希望这有帮助:)