JQuery:通过ajax检索并显示存储为blob的图像

时间:2011-06-15 05:33:38

标签: php jquery mysql ajax blob

所以我在mysql数据库上有一些JPEG图像存储为blob。数据库中的每一行都有一个用于照片的longblob和另一个用于缩略图的blob。我可以通过...

检索图像
<?php
require_once("connect.php");
$id = $_GET['id'];
if ( $_GET['thumb'] === "true" ){
    $query = "SELECT thumb, t_mime, t_size FROM images WHERE image_id = '".$id."';";
}else{
    $query = "SELECT data, mime, size FROM images WHERE image_id = '".$id."';";
}

$result = mysql_query($query);
$image = mysql_fetch_row($result);

header('Content-length: ' . $image[2]);
header('Content-type: ' . $image[1]); 
print $image[0];
?>

并通过<img src="pull.php?id=300&thumb=false"...</img>进行调用。现在,当它仍然是服务器端时,这一切都很好。但是如何在用户拥有html后在页面上获取图像?我一直在使用jquery。到目前为止,我得到的是页面显示的缩略图列表,每个缩略图都在替换文字中显示#id,然后我会...

$("div.imgDiv").click(function(){ 
    image_id = $(this).children(".thumbnail").attr("alt");
    $.ajax({
        url :   'pull.php?id='+image_id+'&thumb=false',
        success: function(data){
            $("img#main_photo").replaceWith("<img alt='welcome' src='"+data+"' id='main_photo'");
        }
    });
});

好消息是我获取数据,坏事是它似乎不想将其转换为图像;我只是得到一串文字。我希望它用与我刚刚点击的缩略图相对应的主照片替换主照片。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您需要将一个img标记指向该网址以供浏览器处理。您不想将其加载到DOM中。