在Razor视图中从Api和显示获取图像

时间:2018-06-14 09:06:36

标签: c# arrays asp.net-web-api asp.net-core

我有webApi方法,我在一个字节数组中使用Oracle数据库获取员工记录及其十六进制加密图像,当我在我的应用程序中获取字节数组并使用img src标记在razor视图中调用它时它不是显示图像。 这是我到目前为止所尝试的:

while (rdr.Read())
{
    EmployeeRefVM emp = new EmployeeRefVM();
    emp.REF_NO = rdr["REF_NO"].ToString();
    emp.ENAME = rdr["ENAME"].ToString();
    emp.EMP_PIC = (byte[])rdr["EMP_PIC"];//get Image in byte[]
    emp.age = GetAge(emp.EMP_DOB);
    employeelist.Add(emp);
}

在我的.net核心应用程序中,我称之为

TempData["EmpPic"] = employeeDetails.EMP_PIC;
public ActionResult Image()
{
    var allsystemconfig = _systemConfigServices.getAllSystemconfig();
    var wwwrootpath = _environment.WebRootPath;
    string filePAth = wwwrootpath + allsystemconfig.FirstOrDefault(q => q.MetaKey == "DefaultImage").MetaValue;
    byte[] imageData = (byte[])TempData["EmpPic"];
    string base64String = Convert.ToBase64String(imageData);
    return base.File(imageData, "image/png");
}

这是我的观点

@{
    var base64 = Convert.ToBase64String(Model.EMP_PIC);
    var imgSrc = String.Format("data:image/jpeg;base64,{0}", base64);
    img src='@Url.Action("Image", "Party")' 
}

图像保存在数据库中:

从DB接收图像:

0 个答案:

没有答案