JQUERY/PHP:base64_编码的图像数据不显示在CHROME,即OPERA上
我的数据库中有以BLOB格式存储的图像。我的PHP代码可以访问这个BLOB数据,并以JSON格式将其返回到客户端HTML页面 如何在HTML页面上显示这些数据 我尝试过使用base64_编码,但它只适用于Firefox。 此代码不适用于CHROME,即OPERA 以下是我的PHP代码:JQUERY/PHP:base64_编码的图像数据不显示在CHROME,即OPERA上,php,jquery,image,google-chrome,base64,Php,Jquery,Image,Google Chrome,Base64,我的数据库中有以BLOB格式存储的图像。我的PHP代码可以访问这个BLOB数据,并以JSON格式将其返回到客户端HTML页面 如何在HTML页面上显示这些数据 我尝试过使用base64_编码,但它只适用于Firefox。 此代码不适用于CHROME,即OPERA 以下是我的PHP代码: $json2[] = array("Picture"=>base64_encode($row2[33])); header("Content-Type: application/json; charset=
$json2[] = array("Picture"=>base64_encode($row2[33]));
header("Content-Type: application/json; charset=UTF-8");
header("Content-type:image/jpeg");
echo json_encode($json2);
这是我的JQuery代码:
success: function(data){
var str = JSON.stringify(data);
var obj = JSON.parse(str);
$('#pic0').html('<img height="40" width="40" src="data:image/jpeg;base64,' + obj[0].Picture + '" />');
}
成功:函数(数据){
var str=JSON.stringify(数据);
var obj=JSON.parse(str);
$('#pic0').html('');
}
成功函数是AJAX调用的一部分。
我的主要目标是在移动设备中显示此图像,因为这是WebService调用的一部分。
从我所读到的内容来看,base64_encode似乎在为每个浏览器工作时都有一些限制
如何在HTML页面上显示图像
我查看了其他帖子,但没有发现任何有成效的内容。这两行代码:
$json = array(/* anything */);
echo $json;
将以下内容逐字输出到页面:
Array
你需要这样回应:
header("Content-Type: application/javascript");
echo json_encode($json);
当然,您的Javascript前端必须正确地将这个JSON字符串解析为您在提供的Javascript代码片段中使用的对象。在这里回答我自己的问题: 正如@NullPoièteè所建议的,编码的Blob数据可以使用以下代码显示:
$('where you want to display').html('<img src="data:image/png;base64,' + ImageVariable + '" />');
$('where you want display').html(“”);
javascript/jQuery中没有base64_解码
那不是你的问题。编写base64_decode()实现相对简单,但是为了在浏览器中显示数据,仍然需要画布支持——如果浏览器不支持数据URI,则不太可能支持画布
如果是我,我将默认使用数据URI,但在javascript中添加检测以检查是否缺少支持,然后在数据URI支持不可用的地方更新src
function check_img()
{
var chkimg=document.getElementById("testDataUri");
if (checkimg.height) {
return true;
}
imgs=document.getElementsByTagName("img");
for (var i=0; i<imgs.length; i++) {
if (imgs[i].data && imgs[i].src.match(/data:/i) {
imgs[i].src=imgs[i].data;
}
}
}
功能检查\u img()
{
var chkimg=document.getElementById(“testDataUri”);
如果(检查高度){
返回true;
}
imgs=document.getElementsByTagName(“img”);
对于(var i=0;i
(代码未测试-仅用于说明)$('where you want display').html('');
什么不起作用:?base64图像字符串是什么?在您的代码行中,我已使用picture data变量更改了第二个'data'。正确吗?只需显示您尝试的完整代码$('#pic1').html('');是我的html代码。$json=array(“Picture”=>base64_encode($row2[33]);echo json;是我的php代码