我对开发非常陌生,我尝试使用以下方法通过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注入有用,但是如果你能帮助我检索图像,我会很感激。
非常感谢, Ĵ
答案 0 :(得分:1)
如果您解码所获得的base64字符串,那么您将看到解码数据为Chrysanthemum.jpg
。这只是图像的文件名,而不是图像数据。
您需要将图像存储在数据库中(而不是文件名)或添加一些代码以从文件系统中读取图像。
BTW,Content-Type image / jpeg要求数据是原始图像,但您的内容(<img src=...> ...</img>
)是HTML片段。