【问题标题】:jQuery ajax load binary image from webapi 2jQuery ajax 从 webapi 2 加载二进制图像
【发布时间】:2014-09-15 23:02:39
【问题描述】:

我有一个问题,当我调用我的 API 来获取图像时,我得到的是二进制图像。我想是的……

ImageConverter imageConverter = new ImageConverter();

byte[] resourceByteArray = (byte[])imageConverter.ConvertTo(_Obj.GetImage(), typeof(byte[]));

MemoryStream dataStream = new MemoryStream(resourceByteArray);
response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(dataStream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/" + parameters.ImageFormat);

前端代码。

$("#formoid").submit(function (event) {

/* stop form from submitting normally */
event.preventDefault();

/* get some values from elements on the page: */
var $form = $(this),
url = $form.attr('action');
/* Send the data using post */
var posting = $(this).serialize();

$.ajax({
type: "POST",
url: url,
data: posting
}).done(function (data) {
$('#output').html('<img src="data:image/PNG;base64' + data + '" />');
});
});

最终结果是:

<img src="data:image/PNG;base64�PNG

���
IHDR�����@��������sRGB�������gAMA�����a���   pHYs�������o�d����IDATx^���W��}�}��s�{�s���g�t��epww��N ��I �  �@�@�]�'F���o���ݫv�������&lt;�g�k������Uk��k���P��+��eˢT�R��`��%J�p�¾��\��`pGƪ\k0\i��!%0���`�

【问题讨论】:

  • 看起来像来自 Ajax 响应的数据的编码问题。尝试解析 json 并尝试将其更改为合适的格式,如 Base64 等。您也可以从服务器端处理。

标签: jquery ajax asp.net-web-api


【解决方案1】:

为了使用&lt;img src="data:image/PNG;base64' base64 部分是因为您需要返回一个Base64 字符串而不是字节数组,因此您需要将您的byte[] 转换为64Base 使用:Convert.ToBase64String(buffer)

所以以你的代码为例:

ImageConverter imageConverter = new ImageConverter();
byte[] resourceByteArray = (byte[])imageConverter.ConvertTo(_Obj.GetImage(), typeof(byte[]));

您的 WebApi 方法应该返回:

return Convert.ToBase64String(resourceByteArray);

【讨论】:

    【解决方案2】:

    我对 asp 和 .NET 不太了解,但您可能应该使用 Convert.ToBase64String 方法将二进制数组转换为文本,然后再将其响应。

    【讨论】:

      猜你喜欢
      • 2014-04-19
      • 2011-09-07
      • 2014-07-14
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 2012-11-28
      • 2016-02-15
      • 1970-01-01
      相关资源
      最近更新 更多