【问题标题】:ASP.net MVC Directory BrowsingASP.net MVC 目录浏览
【发布时间】:2011-04-14 10:36:42
【问题描述】:

我正在添加将图像上传到我的 ASP.net mvc 应用程序的功能。基本上,用户选择一个图像并将其上传到我在解决方案文件夹结构中创建的图像文件夹中。这很好用,图像上传到图像文件夹。

我现在的问题是将图像显示回浏览器。我的问题是如何更改 Asp.net 开发服务器 (localHost:blah blah) 的目录浏览属性,以便图像目录即 http://localHost:9823/Images/UploadedImageName.jpg 显示在浏览器中?

提前致谢

【问题讨论】:

    标签: asp.net-mvc asp.net-development-serv directory-browsing


    【解决方案1】:

    我使用过的几个选项。每种风格的优缺点!

    在视图中

    您可以将视图配置为使用此样式:

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

    这可以通过几种方式重构。也许是一个扩展方法,或者你的视图背后的代码。

    控制器方法+路由

    创建一个新的控制器来提供图像。确保你有一个默认路由。

     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 });
    

    【讨论】:

    • 您必须验证文件名以防止路径遍历。 (例如,fileName=..\web.config
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多