Jpi*_*pin 5 asp.net-mvc image view razor
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;
}
Run Code Online (Sandbox Code Playgroud)
这会将上载文件的绝对路径保存到数据库中,并将文件保存到服务器上.当我尝试检索此路径以在视图中显示图像文件时,我得到的是一个空白方块,就像找不到文件一样(关于:右键单击时为空白 - >复制图像URL).我知道路径是正确的,因为我在不同的视图中使用它以允许用户下载文件,这是正常工作.此外,我允许用户编辑成功删除旧文件并上传新文件的文件.我唯一的问题是在视图中显示图像.
我试过了:
<img src="@Html.Encode(Model.ImageLoc)" />
<img src=@Url.Content(Model.ImageLoc)" />
Run Code Online (Sandbox Code Playgroud)
有人能提出任何建议吗?
Dar*_*rov 13
您已在数据库中存储了映像的绝对路径,但您需要使用相对路径来引用它:
<img src="@Url.Content("~/Uploads/" + System.IO.Path.GetFileName(Model.ImageLoc))" alt="" />
Run Code Online (Sandbox Code Playgroud)
生成的HTML必须如下所示:
<img src="/Uploads/tccxdfu0.nde.jpg" alt="" />
Run Code Online (Sandbox Code Playgroud)
并不是:
<img src="\\PDC2\sites\t\<site.co.uk>\public_html\Uploads\tccxdfu0.nde.jpg" alt="" />
Run Code Online (Sandbox Code Playgroud)
因为客户端无法从服务器访问此类文件夹.
| 归档时间: |
|
| 查看次数: |
23294 次 |
| 最近记录: |