2012-09-21 65 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是什麼? –