0


后台返回的数据是一对很长的base64字符串 想请教一下是用div 还是 img标签 处理这些编码

写了一个demo 但是显示不出来 不知道问题出在哪里


            url:url,
            type:"POST",
            dataType :'json',
            contentType :'application/json',
            data:data,
            success:function(data){
                $.each(data.retObject,function(n,value){
                    console.log(value);
                    var img = "data:image/jpg;base64" + value.imgByte;
                    var html = '';
                    html += '<img class = "img">dfdfdf';
                    $('body').append(html);
                    $('.img').attr('src',img);

                });

            },

        })

5个回答

1

这个循环里边的内容建议用原生去写,并且这么多的内容,不要每次循环都append一遍,可以这样:

var html = []; // 写外边
$.each(data.retObject, function(n,value){
    var _img = new Image(); // 构建Dom
        _img.src = "data:image/jpg;base64," + value.imgByte;
        _img.onload = function() {
            html.push(_img);
        }
});
$(html).appendTo('body'); // 最后一次性插入
0

// Base64 在HTML中的使用
<img src="data:image/jpg;base64,/9j/4QMZR..." />

0

少了个逗号
试试看var img = "data:image/jpg;base64," + value.imgByte;

0
var baseStr = 'iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAAA3NCSVQICAjb4U/gAAAABlBMVEX///+ZmZmOUEqyAAAAAnRSTlMA/1uRIrUAAAAJcEhZcwAACusAAArrAYKLDVoAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDkvMjAvMTIGkKG+AAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAAB1JREFUCJljONjA8LiBoZyBwY6BQQZMAtlAkYMNAF1fBs/zPvcnAAAAAElFTkSuQmCC'
var img=new Image();  
img.className="myimg"
img.src="data:image/png;base64," + baseStr
$(".wrap").append(img)
0

我是在前台用lrz把bese64压缩转成blob,然后存的.....

撰写答案