Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQUERY/PHP:base64_编码的图像数据不显示在CHROME,即OPERA上_Php_Jquery_Image_Google Chrome_Base64 - Fatal编程技术网

JQUERY/PHP:base64_编码的图像数据不显示在CHROME,即OPERA上

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=

我的数据库中有以BLOB格式存储的图像。我的PHP代码可以访问这个BLOB数据,并以JSON格式将其返回到客户端HTML页面

如何在HTML页面上显示这些数据

我尝试过使用base64_编码,但它只适用于Firefox。 此代码不适用于CHROME,即OPERA

以下是我的PHP代码:

$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代码