我无法显示BLOB图像

时间:2016-01-09 21:11:37

标签: php html image

我有一个问题,当我尝试显示存储在数据库中的图像时,它只显示字符和符号;这是我正在使用的代码:

    if ($pass==$dbpass&&$id== $dbid) {

   $queryimage = mysql_fetch_array(mysql_query("SELECT `images` FROM `attestation` WHERE id='$id' "))[0];

   echo $queryimage;


    @$_SESSION['id']=$id;
    }

2 个答案:

答案 0 :(得分:3)

您需要告诉浏览器您要向其发送哪种数据。在HTTP中,这是使用headers

完成的
header('Content-Type: image/png');

这是png图像的示例。有关多种类型的列表,请参阅此link

另请注意,任何标头都需要在输出到浏览器之前发送。这意味着任何回声和/或PHP标记之外的任何内容(甚至是空格字符)。

所以你的代码看起来像:

if ($pass==$dbpass&&$id== $dbid) {
    $queryimage = mysql_fetch_array(mysql_query("SELECT `images` FROM `attestation` WHERE id='$id' "))[0];

    header('Content-Type: image/png'); // change this to your actual image type
    echo $queryimage;

    @$_SESSION['id']=$id;
}

答案 1 :(得分:0)

此行在Dreamweaver中突出显示为错误

$queryimage = mysql_fetch_array(mysql_query("SELECT `images` FROM `attestation` WHERE id='$id' "))[0];
或许这样的事情呢?

<?php
    if ( $pass===$dbpass && $id===$dbid ) {

        $sql="SELECT `images` FROM `attestation` WHERE id='$id'";

        $res=mysql_query( $sql );
        $rs=mysql_fetch_array( $res );

        $queryimage=$rs[0];

        $_SESSION['id']=$id;

        header('Content-Type: image/png'); 
        echo $queryimage;
    }
?>