【发布时间】:2012-09-29 23:57:49
【问题描述】:
Visual Studio 2012 - ASP.net - MVC 4
我在显示存储在数据库中的服务器路径中的图像时遇到问题。
我正在使用 HttpPostedFileBase 来检索用户上传的文件:
using (var uow = _db.CreateUnitOfWork())
{
if (imageUpload != null && imageUpload.ContentLength > 0)
{
var fileName = Path.GetRandomFileName() + Path.GetExtension(imageUpload.FileName);
var path = Path.Combine(System.Web.Hosting.HostingEnvironment.MapPath("~/Uploads"), fileName);
imageUpload.SaveAs(path);
achievement.ImageLoc = path;
}
uow.Add(achievement);
Save(uow);
return true;
}
这会将上传文件的绝对路径保存到数据库中,并将文件保存到服务器上。当我尝试检索此路径以在视图中显示图像文件时,我得到的只是一个空白方块,就像找不到文件一样(右键单击时为:空白-> 复制图像 url)。我知道路径是正确的,因为我在不同的视图中使用它来允许用户下载文件,它工作正常。此外,我允许用户编辑成功删除旧文件并上传新文件的文件。我遇到的唯一问题是在视图中显示图像。
我试过了:
<img src="@Html.Encode(Model.ImageLoc)" />
<img src=@Url.Content(Model.ImageLoc)" />
有人可以提出任何建议吗?
【问题讨论】:
-
你检查过输出的Html吗? (即在它呈现的页面上查看源代码)。快速浏览一下它放在
src标签中的链接可能会让您更好地了解问题所在。要检查的内容包括路径被双重编码(即您在通往数据库的途中对其进行一次编码,然后在离开时再次对其进行编码)或在路径末尾缺少“/”。 -
\public_html\Uploads\tccxdfu0.nde.jpg" />
标签: asp.net-mvc image razor view