我尝试在MVC4 Web应用程序上创建用户个人资料页面。
在userprofile页面上有一个图像<img />
标签,用于显示个人资料照片。在图片下方,有“浏览”,“上传”按钮供用户浏览和上传照片。在单击上载按钮时,它应将照片上载到SQL Server并在配置文件页面上显示图像。
我可以上传照片并保存到SQL Server表格。现在我想将照片从SQL Server表中检索到配置文件页面。
这是我的用户个人资料页面/.cshtml页面(剃刀视图)
@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的相同功能
提前谢谢
答案 0 :(得分:3)
您可以使用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})"