js解析后端查询数据库得到的byte数组成图片展示在网页上?

新手上路,请多包涵

1.后台查询数据库得到byte数组传送给前端,前台解析成图片在网页上展示。

  1. `function query_picture() {

        var macid = "119K007736";
        $.ajax({
            type: "POST",
            url: "/CheckBmp/query_picture",
            data: { "macid": macid },
            success: function (p1) {
                alert("hi");
                var str = arrayBufferToBase64(p1);
                alert(str);
                var outputimg = document.createElement('img');
                outputimg.src = 'data:image/png;base64,' + str;
                $("#left_pic").html(outputimg);
            }
        })
    }
    function arrayBufferToBase64(buffer) {
        var binary = '';
        var bytes = new Uint8Array(buffer);
        var len = bytes.byteLength;
        for (var i = 0; i < len; i++) {
            binary += String.fromCharCode(bytes[i]);
        }
        return window.btoa(binary);
        //return binary;
    }
    
    

    </script>`
    3.前台获取到的图片是这个鬼样子的
    图片左上角就是显示不出来的图片
    4.经过调试我发现,后台查询数组长度为5039926.而传输到前台js中的数组长度是13,值为System.byte[]
    5.不理解为什么传输到前端数组值会变了呢?

阅读 3.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题