我在asp.net mvc中开发了一个应用程序,并决定将文件存储到文件系统而不是数据库中(我只是在db表上放置文件的绝对路径)。处于开发阶段I的所有文件都放入app文件夹中的特殊专用文件夹中。在服务器上部署后,我遇到了IIS权限问题,并没有设法保存文件。然后我决定将提到的带文件的文件夹移动到C:\ Upload文件夹,一切都很好,直到我试图获取照片并使用thickbox对话框小部件(照片库)显示它。经过一些谷歌搜索后,我得出结论,asp.net mvc只能显示来自相对路径的照片。我现在能做什么,它只在BLOB中存储一个解决方案吗?
更新
型号代码
public class PriloziViewModel
{
public string FileName { get; set; }
public string FilePath { get; set; }
}
控制器代码:
public ActionResult VijestiSlike(Int64 vijestID)
{
var slike = from i in db.Slikes where i.FK_vijesti_id == vijestID select i;
PriloziViewModel s = new PriloziViewModel();
List<PriloziViewModel> slist = new List<PriloziViewModel>();
foreach (var j in slike) {
slist.Add(new PriloziViewModel()
{
FileName = j.naziv,
FilePath = j.link
});
}
return View(slist);
}
查看代码:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<MyApp.Models.PriloziViewModel>>" %>
<% foreach (var item in Model) { %>
<a href="<%: Html.DisplayFor(modelItem => item.FilePath) %>" title="" class="thickbox" rel="gallery-plants">
<img src="<%: Html.DisplayFor(modelItem => item.FilePath) %>" style="width:120px;height:80px;" alt="" /></a>
<% } %>
链接以C:\ Uploads \ Photo12345.jpg
格式存储在数据库中IIS上还添加了虚拟目录(C:\ Uploads)。
答案 0 :(得分:0)
<强>解决方案:强>
上面的代码实际上是正确的,在设置虚拟目录后,我改变的唯一一件事是数据库中的路径。正确的路径格式是/Uploads/Photo12345.jpg