我试图从我的服务器(其中有图片存储在mysql数据库)拉图片。然而,当我试图调用它时,我没有得到正确的图片?下面是我如何尝试设置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");
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();
});
UPDATE: get WEIRD RESULT当我将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页面,这是没有问题的。使用.serialize()
创建您的查询字符串,并将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);
});