使用jquery ajax调用从服务器上的php脚本(mysql)检索图片
我正在尝试从我的服务器中提取一张图片,它的图片存储在mysql数据库中。当我试图打电话给它时,我没有正确地得到一张照片?下面是我如何尝试设置php服务器响应使用jquery ajax调用从服务器上的php脚本(mysql)检索图片,php,jquery,Php,Jquery,我正在尝试从我的服务器中提取一张图片,它的图片存储在mysql数据库中。当我试图打电话给它时,我没有正确地得到一张照片?下面是我如何尝试设置php服务器响应 if(mysql_query("insert into Personal_Photos (Email, Pics) values('$email', '$data')")) { $query="select Pics, MAX(ID) from Personal_Photos wher
if(mysql_query("insert into Personal_Photos (Email, Pics) values('$email', '$data')"))
{
$query="select Pics, MAX(ID) from Personal_Photos where Email='$email'";
$result=mysql_query($query) or die("Error: ".mysql_error());
$row=mysql_fetch_array($result);
//$mime = 'image/yourtype';
//$base64 = base64_encode($contents);
//$uri = "data:$mime;base64,$base64";
header("Content-type: image/jpg");
print($row['Pics']);
}
这里是jquery表单调用,它试图获取这张图片
$('#profilepicbutton').live('change', function(){
$("#preview").html('');
$("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
$("#registerpt3").ajaxForm({
target: '#preview',
success: function(data)
{
$("#preview").html('');
$("#preview").append("<img src="+data+"></img>");
}
}).submit();
});
更新:得到奇怪的结果
当我将php代码更改为以下内容时,会得到一个奇怪的结果
if(mysql_query("insert into Personal_Photos (Email, Pics) values('$email', '$data')"))
{
$query="select Pics, MAX(ID) from Personal_Photos where Email='$email'";
$result=mysql_query($query) or die("Error: ".mysql_error());
$row=mysql_fetch_array($result);
//$mime = 'image/yourtype';
//$base64 = base64_encode($contents);
//$uri = "data:$mime;base64,$base64";
//header("Content-type: image/jpg");
echo '<img src="data:image/jpeg;base64'.base64_encode($row['Pics']).'"/>';
}
必须使用GET请求从url加载图像。好的,不总是这样-您可以使用数据URL,但它可能有缺陷,并且浏览器支持是一个问题。因此,如果您可以使用get请求而不是POST来获取php页面,这是没有问题的。用于创建查询字符串,并将url分配给图像的src:
$('#profilepicbutton').live('change', function() {
$("#preview").html('');
$("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
var form = $("#registerpt3");
var page = form.attr("action");
var qs = form.serialize();
var url = page + "?" + qs;
$("<img>").load(function() {
$("#preview").empty().append(this);
}).attr("src", url);
});