如何从 Web API 发布和获取数据 uri 图像

How to post and get data uri image from web api?

本文关键字:获取 数据 uri 图像 Web API      更新时间:2023-09-26

我正在尝试将数据uri图像从javascript发布到webapi asp.net 后端。但是,它给了我input is not a valid Base-64 string错误。现在,我知道这可能是由于数据 uri 包含的部分"data:image/png;base64"。

现在,即使我从数据 uri 中删除这部分并仅将字符串的其余部分发送到服务器,如何在服务器上存储 Base-64 字符串?

此外,如何从webapi检索这些数据作为图像?

注意:图像大小将小于200kB,因此将作为varbinary(Max(存储在sql服务器中。

问题是你应该将你的图像转换为byte[],并将其作为varbinary存储在你的服务器中

 byte []arr = new byte[image1.ContentLength];
 image1.InputStream.Read(arr, 0, image1.ContentLength);

检索时,应将 varbinary 数据转换为 base64 字符串,将 base 64 字符串转换为图像

string imageBase64Data = Convert.ToBase64String(img); 

这是上面的代码将varbinary转换为base64string的重要部分。它应该采用正确的格式来显示图像。这就是以下代码的作用

  string imageDataURL = string.Format("data:image/png;base64,{0}", asd);
  Session["Photo"] = imageDataURL;

现在,您可以查看图像

来自客户端的图像发布在字符串中,不指定类型。在您的操作中,您可以通过以下方式获取图像:

    var bytes = Convert.FromBase64String(yourStringHere);
    using (var ms = new MemoryStream(bytes))
    {
        image = Image.FromStream(ms);
    }