2

我添加了將圖像上傳到我的ASP.net mvc應用程序的功能。基本上用戶選擇一個圖像,然後將其上傳到我在解決方案文件夾結構中創建的Images文件夾。這很好,圖像上傳到圖像文件夾。ASP.net MVC目錄瀏覽

我現在的問題是現在將圖像顯示回瀏覽器。我的問題是,如何更改Asp.net Development Server的目錄瀏覽屬性(localHost:blah blah),以便在瀏覽器中顯示圖像目錄,即http://localHost:9823/Images/UploadedImageName.jpg

在此先感謝

回答

2

我已經使用了幾個選項。每種風格的優點和缺點!

在查看

你可以讓你查看配置爲使用這種風格:

<img src="<%=ResolveUrl("~/Images/foo.png")" %> /> 

這可重構的方式屈指可數。也許是擴展方法,或者代碼隱藏在你的View中。

控制器方法+路由

創建一個新的控制器就可以提供圖像。確保你有一個默認路由。

public class Images 
{ 
    public FileResult GetImage(string fileName) //foo.png 
    { 
     string fullPath = "~/Images/" + fileName; 
     return base.File(fullPath, "image/jpeg"); 
    } 
} 

... 
routes.MapRoute("UserImage", 
       "Image/{filename}", 
       new { controller = "Images", action = "GetImage", 
         fileName=filename }); 
+0

您必須驗證文件名以防止路徑遍歷。 (例如'fileName = .. \ web.config') – SLaks 2010-09-28 14:16:45