【问题标题】:How to store an Image URL in database and use it in ASP.NET MVC?如何将图像 URL 存储在数据库中并在 ASP.NET MVC 中使用?
【发布时间】:2016-03-17 10:21:17
【问题描述】:

我正在创建一个应用程序,用于将图像上传到数据库并在图库中显示它们。我想要链接到页面的图像。 我只是不知道如何从视图中的模型调用 url。 还是我应该在这里做一个特殊的控制器功能?

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; }
}

图库.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>

问候

【问题讨论】:

  • 几点建议:(1)不要使用表格来布置你的画廊,它有很大的局限性。 (2) 不要在页面中嵌入您的图像数据,而是创建一个控制器操作,以响应带有图像数据的 http 请求,并设置 src 以使用适当的 id 调用该操作。 (3) 您已经展示了如何将ImageData 属性写入页面;使用相同的方法为href 属性编写ImageUrl 属性。

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-01-04
      • 2019-05-07
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多