php - 无法显示图像

时间:2015-06-12 14:53:16

标签: php sql

我对开发非常陌生,我尝试使用以下方法通过odbc连接从SQL服务器检索图像:

<?php

require ('connect.inc.php');



$sql = "SELECt image FROM test.dbo.clients WHERE id = 1";
$sql_exec = odbc_exec($con, $sql);

if($sql_array = odbc_fetch_array($sql_exec)){
    $image = base64_encode($sql_array['image']);
    header('Content-type: image/jpeg');
    echo "<img src=".$image."/>";
}


?>

问题在于我得到一个显示图像损坏的图标 查询是正确的,因为当我将其更改为下面的代码时,它返回此字符串而不是图像:

  

Q2hyeXNhbnRoZW11bS5qcGc =

<?php
require ('connect.inc.php');   

$sql = "SELECt image FROM test.dbo.clients WHERE id = 1";
$sql_exec = odbc_exec($con, $sql);

if($sql_array = odbc_fetch_array($sql_exec)){
    $image = base64_encode($sql_array['image']);

    echo $image;
}
?>

我知道代码不正确,可能对SQL注入有用,但是如果你能帮助我检索图像,我会很感激。

非常感谢, Ĵ

1 个答案:

答案 0 :(得分:1)

如果您解码所获得的base64字符串,那么您将看到解码数据为Chrysanthemum.jpg。这只是图像的文件名,而不是图像数据。

您需要将图像存储在数据库中(而不是文件名)或添加一些代码以从文件系统中读取图像。

BTW,Content-Type image / jpeg要求数据是原始图像,但您的内容(<img src=...> ...</img>)是HTML片段。