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

发布于 2024-10-13 00:58:13 字数 734 浏览 2 评论 0原文

我在服务器上有一个图像的字节数组。 使用 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);

I have a byte array of an image on the server.
Using MVC as a pseudo-REST web service interface.

I'm in need of sending this image back through the HTTP request to the MVC client to render.

My first attempt was using UFT8Encoding to encode it to a string, send that cross then decode it using UTF8Encoding on the client.
However, when I do this, the result on the client is null. I assume due to the format of the string that I'm trying to send back.

This is what I'm doing now to no avail:

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

This is on the client side:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

穿透光 2024-10-20 00:58:13

您有什么理由不将其作为图像从控制器返回吗?

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

在您的客户端中,您可以像使用任何其他文件一样使用 WebRequest 下载文件,而无需执行任何其他操作。

Is there any reason you don't return it as an image from your controller?

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

Thin in your client you can just use WebRequest to download the file like any other file and not have to do any other magic.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文