我一直在尝试在图片中显示二进制数据,但事情没有按预期工作。
在服务器端(c#),我发送像我这样的字节[]
context.HttpContext.Response.Clear();
context.HttpContext.Response.ContentType = "image/png";
context.HttpContext.Response.BinaryWrite(ImageBytes);
context.HttpContext.ApplicationInstance.CompleteRequest();
在客户端
$.ajax({
url: '/Main/RenderPDF',
type: "POST",
data: JSON.stringify(serverObj),
dataType: "binary",
processData: false,
headers: {
'Content-Type': 'application/json; charset=utf-8',
'X-Requested-With': 'XMLHttpRequest',
'__RequestVerificationToken': '',
'__RequestVerificationToken': $('#__AjaxAntiForgeryForm input[name=__RequestVerificationToken]').val()
},
success: function (data, textStatus, request) {
var headers = ['docId', 'pageHeight', 'pageWidth', 'width', 'height', 'pageNumber'],
response = {};
_.forEach(headers, function (item) { response[item] = request.getResponseHeader(item) })
response.imageBytes = hexToBase64(data);
callBack(response);
}
});
function hexToBase64(str) {
return btoa(String.fromCharCode.apply(null, str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")));
}
它会破坏hexToBase64上的代码并使用普通字节并附加图像
$img.attr('src', "data:image/png;base64," +response.imageBytes);
问题就是这个,当我在vs中调试时得到像
这样的东西我不知道为什么它不起作用可以帮助我需要改变或修复的东西
任何帮助将不胜感激 此致