使用 Angular JS 未显示 base 64 的图像源

Image source with base 64 not showing up using Angular JS

我正在显示 sql 数据库中保存的字节数组中的 base 64 图像。

这是我的html代码

      <img id="imgavatar" data-ng-src="data:image/jpeg;base64,{{user.Avatar}}" data-err-src="~/Images/avatar.png" style="width:100px;height:100px;position:absolute" />

    <img id="imgprofile" data-ng-src="data:image/jpeg;base64,{{user.ProfileImage}}" data-err-src="~/Images/image-icon.png" style="width:200px;height:200px;position:absolute" />

图像未显示,但是二进制数字附加了图像源,如图所示

这是我用来将图像保存为字节数组的代码

[HttpPost]
    public ActionResult Edit(string id,string user,HttpPostedFileBase avatar, HttpPostedFileBase profile)
    {
     if (avatar != null)
            {
                p.avatar = new byte[avatar.InputStream.Length];


            }
    }

这里是获取图片的代码

Avatar = Convert.ToBase64String(profile.avatar),

图像未显示,但字符串附加了 source

需要帮助我做错了什么?

您的数据不是 Base64 数据。可能是服务器端的问题。

对于客户: 尝试将此插件用于 angular: https://github.com/adonespitogo/angular-base64-upload

对于服务器端 将图像转换为 Base64 的代码如下:

public string ImageToBase64(Image image, 
  System.Drawing.Imaging.ImageFormat format)
{
  using (MemoryStream ms = new MemoryStream())
  {
    // Convert Image to byte[]
    image.Save(ms, format);
    byte[] imageBytes = ms.ToArray();

    // Convert byte[] to Base64 String
    string base64String = Convert.ToBase64String(imageBytes);
    return base64String;
  }
}