将文件路径转换为asp.net核心中的URL

时间:2016-06-04 14:59:11

标签: asp.net asp.net-mvc

将文件路径转换为绝对网址的最简单方法是什么。例如:

文件:

C:\myapp\src\SqlExpress\wwwroot\data\images\test.jpg

URL:

http://localhost/data/images/test.jpg

2 个答案:

答案 0 :(得分:5)

这就是我所做的。我从来没有找到一种方法来轻松找到控制器外的wwwroot路径。所以我在Startup类中使用了一个静态变量,它可以在整个应用程序中访问。

public class Startup
{
    public static string wwwRootFolder = string.Empty;

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        Startup.wwwRootFolder = env.WebRootPath;
        // ...
    }
}

然后在我想要的任何地方..

public static string GetUrlFromAbsolutePath(string absolutePath)
{
    return absolutePath.Replace(Startup.wwwRootFolder, "").Replace(@"\", "/");
}

答案 1 :(得分:1)

    static string Convert(string path)
    {
        return path.Replace(@"C:\myapp\src\SqlExpress\wwwroot", @"http://localhost").Replace('\\', '/');
    }

    static void Main(string[] args)
    {
        string url = Convert(@"C:\myapp\src\SqlExpress\wwwroot\data\images\test.jpg");
    }