MVC4正在从SQL Server表中检索图像文件到html图像

本文关键字:图像 检索 文件 html SQL Server MVC4 | 更新日期: 2023-09-27 18:21:31

我试图在MVC4 web应用程序上创建用户配置文件页面。

在用户配置文件页面上有一个图像<img />标签,用于显示配置文件照片。在图片下方,有"浏览"、"上传"按钮供用户浏览和上传照片。单击上传按钮,它应该将照片上传到SQL Server,并在配置文件页面上显示图像。

我可以上传照片并保存到SQL Server表中。现在我想将照片从SQL Server表中检索到配置文件页面。

这是我的用户配置文件页面/.cs.html页面(剃刀视图)

@model MvcSamples.Models.UserPicModel
@{
    ViewBag.Title = "PersonalInfo";
}
<h2>PersonalInfo</h2>
<form action="/UserDetails/PersonalInfo"  method="post" enctype="multipart/form-data">
        <img src="" alt="ProfilePhoto" />
    <label for="photo">Photo:</label>
    <input type="file" name="photo" id="photo" />
    <input type="submit" value="Upload" />
</form>

这是我用来从SQL Server表中检索照片的代码。注意,照片是作为byte[] 从数据库中检索的

byte[] barrImg = usr.GetProfilePhoto(id);

当我调试时,我可以看到照片被检索到"barImg"。

我的问题1:从这里开始,我如何将其发送到<img src="" alt="ProfilePhoto" />,以便在个人资料页面上显示实际照片?

问题2:有人能提出任何更好的替代方案建议/样本/指针来实现Jquery/Ajax/javascript 的相同功能吗

提前感谢

MVC4正在从SQL Server表中检索图像文件到html图像

您可以使用FileResult向响应发送二进制数据。

public FileResult GetProfileImage(int id)
{
    var usr = new Whatever();
    byte[] barrImg = usr.GetProfilePhoto(id);
    return File(barrImg, "image/png");
}

您可以将其用作

 <img src="@Url.Action("GetProfileImage", "Controller", new { id = 5})"