如何在数据库中存储图像URL并在ASP.NET MVC中使用它?

时间:2015-12-11 13:25:20

标签: asp.net sql-server asp.net-mvc-5

我正在创建一个将图像上传到数据库并在图库中显示的应用程序。我想将图像链接到页面。 我根本不知道如何在视图中调用模型中的url。 或者我应该在这里制作一个特殊的控制器功能?

My Database

ImageGallary.cs

    public partial class ImageGallery
{
    public int ImageID { get; set; }
    public int ImageSize { get; set; }
    public string FileName { get; set; }

    public string ImageURL { get; set; }

    public byte[] ImageData { get; set; }
    [Required(ErrorMessage="Please select an image file")]
    public HttpPostedFileBase File { get; set; }
}

Gallery.cshtml

    @model List <JensGoesASP.ImageGallery>

@{
    ViewBag.Title = "Gallery";
}

<h2>Films</h2>

@* Hier komen de geuploade images *@
<table class="table">
    @{
        int j = 0;
        for (int i = 0; i < Model.Count(); i += 4)
        {
            j = i;
            @* Dit laat 4 images per rij zien *@
            <tr>
                @while (j < i + 2 && j < Model.Count())
                {
                    <td>
                        <img src="data:image/png;base64,@Convert.ToBase64String(Model[j].ImageData,0,Model[j].ImageData.Length)" style="padding-top:30px;" />
                        <a href="THE URL">Button</a> @*Here i want to get the url from the database*@
                </td>
                    j++;
                }

                </tr>
        }
    }

</table>

格尔茨

2 个答案:

答案 0 :(得分:0)

只需在您的页面中添加此代码。如果之前已存储过您的照片,则会显示您的照片。

@foreach (var item in Model)
                {
                <div>
                    <img src="@Html.DisplayFor(modelItem => item.ImageURL)" />
                </div>
                }

答案 1 :(得分:0)

大多数应用程序不会将图像本身存储在数据库中。它增加了整个复杂程度,没有任何明显的优势。这会使您的ImageData列在您的示例中过时。

而是通过FTP或其他方法将图像上传到服务器上的特定目录。

在您的数据库中,您只需存储文件名,路径和文件名,具体取决于您的设置。

然后你会用@Ali发布的东西来引用这些图像。

<img src="@Html.DisplayFor(modelItem => item.ImageURL)" />