2016-04-27 161 views
1

目前我運行一個MVC 5項目與網頁API我在哪裏採用了棱角分明的js調用Ajax火的網絡API方法,並得到圖片的路徑,但是當我設置在IMG標記,路徑,使圖像不顯示和在Chrome控制檯消息顯示不能加載本地資源。不允許加載本地資源

下面是我公司通過AJAX調用Web API方法的代碼

[Route("Files")] 
 
     public List<FilesInfo> GetImages() 
 
     { 
 
rootPath = HostingEnvironment.MapPath("~/Content/Images/"); 
 
      List<FilesInfo> files = new List<FilesInfo>(); 
 
    
 
      foreach (var item in Directory.GetFiles(rootPath)) 
 
      { 
 
       FileInfo f = new FileInfo(item); 
 
       files.Add(new FilesInfo(){FileName=f.Name, FilePath=rootPath+f.Name}); 
 
      } 
 

 
      return files; 
 
      
 
     }

請讓我知道如果您有任何疑問。

回答

1

看來HostingEnvironment.MapPathreturns the physical path在服務器上。 當你加入這個路徑,你imgsrc屬性,瀏覽器會抱怨無法將本地當地資源。

你需要的路徑調整到圖像是相對於你的網站:/img/img1.jpg

嘗試:

[Route("Files")] 
public List<FilesInfo> GetImages() 
{ 
    rootPath = "/Content/Images/"; 
    List<FilesInfo> files = new List<FilesInfo>(); 

    foreach (var item in Directory.GetFiles(HostingEnvironment.MapPath("~"+ rootPath);)) 
    { 
     FileInfo f = new FileInfo(item); 
     files.Add(new FilesInfo() { FileName = f.Name, FilePath = rootPath + f.Name }); 
    } 

    return files; 

} 

這樣System.IO.FileInfo應具備的地方路徑,您FilesInfo應該有相對URL路徑,您可以用角用來創建:<img ng-src="{{vm.file.filePath}}" alt="{{vm.file.fileName}}" />

+0

嗨布魯諾,感謝您的答覆。但我沒有太多,你可以探索更多?目前我的圖像位於項目內容>內容>圖像> image1.jpg。謝謝。 – Vikash

+0

你'FilesInfo.FilePath'不應該包含C:\ some \ path。它必須包含由Web服務器提供的圖像的路徑:(mysite.com)/Content/image1.jpg基本上,您應該可以將此URL添加到瀏覽器的導航欄並查看圖像。 –

+0

我在這裏改變了,但仍然有問題。 foreach(Directory.GetFiles(rootPath)中的var項) { FileInfo f = new FileInfo(item); files.Add(new FilesInfo(){FileName = f.Name,FilePath = f.DirectoryName + f.Name}); } – Vikash

相關問題