0

我在显示不在应用程序文件夹中而是在 C:\tmp\Somename\somepic.jpg 中的图像时遇到问题我一直在搜索和尝试,但无济于事。

到目前为止我所拥有的(我认为与这个问题有关)是:在控制器中

public ActionResult Edit(int? id)
{
    if (id.HasValue)
    {
        var model = GetItems(id.Value);

        ViewBag.Images = Directory.GetFiles(WebConfigurationManager.AppSettings["itemPath"] + model.ContentId.ToString().Substring(0, 3) + "\\", model.ContentId + "*.jpg");
        return View(model);
    }

    return View("Notfound", "Home");
}

并且在视图中

<div class="row">
@foreach (var item in ViewBag.Images)
{
    <img src="@Url.Content(item)" alt="hello"/>


}

任何帮助,将不胜感激。

4

1 回答 1

2

该问题似乎是由在 URL 中使用绝对文件路径引起的,例如

<img src="c:\tmp\myimage.jpg" />

这不起作用,原因有以下三个:

  • URI 使用斜杠,而不是反斜杠
  • 浏览器通常不知道如何使用它不理解的协议来处理 url(尽管为方便起见,它们确实支持在浏览器中输入时显示本地文件)
  • 当用户打开此类网页时,浏览器将导航到其本地计算机上的文件,而不是 Web 服务器上的文件。浏览器禁止这样做,因为这是一个巨大的安全漏洞。

这也包含在src 绝对路径问题中

于 2012-09-21T13:42:34.873 回答