操作方法:将图像的字节数组转换为字符串,通过HTTP请求发回,然后返回byte []图像?

时间:2011-01-19 19:39:04

标签: asp.net-mvc encoding image-processing bytearray

我在服务器上有一个图像的字节数组。 使用MVC作为伪REST Web服务接口。

我需要通过HTTP请求将此图像发送回MVC客户端进行渲染。

我的第一次尝试是使用UFT8Encoding将其编码为字符串,发送该交叉然后使用客户端上的UTF8Encoding对其进行解码。 但是,当我这样做时,客户端上的结果为空。我假设由于我想要发回的字符串的格式。

这就是我现在所做的事无济于事:

        byte[] image = GetBarcodeImage(barcode);
        if (image != null)
        {
            UTF8Encoding enc = new UTF8Encoding();
            result = enc.GetString(image);
        }

这是在客户端:

        UTF8Encoding  encoding= new UTF8Encoding();
        byte[] image = encoding.GetBytes(result);
        string imageBase64 = Convert.ToBase64String(image);
        string imgsrc = string.Format("data:image/gif;base64,{0}", imageBase64);

1 个答案:

答案 0 :(得分:0)

是否有任何理由不将其作为控制器中的图像返回?

var image = GetByteArrayImage();
var stream = new MemoryStream(image);
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Expires = 14400;
return File(stream, "image/jpg");

在您的客户端中,您只需使用WebRequest下载文件就像任何其他文件一样,而不必做任何其他魔术。