我使用mvc EF6显示来自SQL server数据库的图像,
我们已经将图像保存到本地文件夹,并将其URL保存到数据库。
做得很好
图像url保存如下
C:\Users\Naveed\Desktop\EndToEnd\UserImages\6360831428333175151-posterior-teeth.jpg
然后在我的视图中使用下面的代码来显示图像。
@model IEnumerable<iSmileFinal.Models.Imaging>
@if (Model != null)
{
<div class="adsm-sec">
@foreach (var vad in Model)
{
<div id="img">
<div class="adsm-image-wraper">
@*@{string imagePath = Url.Content("~/UserImages/");}*@
@*<img src='@Url.Content("~/UserImages/")' alt="no photo" />*@
<img src='@Url.Content(vad.ImageUrl)' alt="no photo" class="adsm-image" />
<img src='@Url.Content(String.Format(vad.ImageUrl))' style="width:200px; height:90px;" />
</div>
</div>
<img>@Html.DisplayFor(modelItem => vad.ImageUrl)
@Html.DisplayFor(modelItem => vad.ImageType)
@Html.DisplayFor(modelItem => vad.Comments)
}
</div>}
但它并没有显示图像。它的显示方式如下(见图)

我使用谷歌Chrome和FF。
发布于 2016-09-01 15:58:16
C:\Users\Naveed\Desktop\EndToEnd\UserImages\6360831428333175151-posterior-teeth.jpg
这不是图像url
这是文件的物理路径。上传图像时,不应将其存储在数据库中。相反,您应该存储相对于web应用程序的url/唯一文件标识符。
有点像yourSite/UserImages/uniqueFileName.jpg或者只是uniqueFileName.jpg"
现在,在呈现页面时,从db表中读取此值,并使用该相对url作为图像src属性。如果您只是在存储文件名,则可能需要将其附加到存储文件位置"UserImages\"+yourFileNameVariable;并使用它使其相对。
如果您的UserImages目录位于应用程序的web根目录中,则可以这样做。
<img src="@Url.Content("~/UserImages/yourFileName.png")"/>如果要在db表中存储文件名,请将yourFileName.png替换为c#变量/model属性名称。
例如,如果您的模型/视图模型有一个名为ImageName的属性,该属性具有唯一的文件名(仅为文件名),您可以这样做
<img src="@Url.Content("~")/Uploads/@Model.ImageName"/>@Url.Content("~")将返回到web根目录的相对路径。
编辑:根据评论。
展示所有的物品。您可以在循环中移动此图像标记。
@model IEnumerable<iSmileFinal.Models.Imaging>
@if (Model != null)
{
<div class="adsm-sec">
@foreach (var vad in Model)
{
<img src="@Url.Content("~")/Uploads/@vad.ImageName" />
}
</div>
}假设成像类具有ImageName属性,您将在其中加载存储在~/Uploads目录下的文件名。
https://stackoverflow.com/questions/39275980
复制相似问题