2012-09-21 40 views
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"/> 


} 

任何帮助,将不胜感激。

回答

2

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

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

这不会,原因有三工作:

  • 的URI使用斜杠,而不是反斜杠
  • 浏览器一般不知道如何使用协议不理解处理的URL(尽管他们支持在浏览器中显示本地文件以方便使用)
  • 当用户打开此类网页时,浏览器将导航到本地机器上的文件,而不是Web服务器上的文件。由于它是一个巨大的安全漏洞,因此浏览器不允许这样做。

这也包括在src absolute path problem

+0

你能给我一步一步该怎么做? – Siemsen

+0

您是否在引用WebDev.WebServer40.exe进程,因为这是在我的帐户下。 – Siemsen

+0

这取决于你的设置,可能是......你能否澄清问题。我最初理解你不能访问文件(用户权限问题)。你的意思是你实际上可以访问它们,但是它们没有显示在浏览器中? 'img'标签的'src'属性中显示的URL是什么? –