【问题标题】:ASP.Net MVC:File url maskingASP.Net MVC:文件 url 掩码
【发布时间】:2018-02-03 08:44:06
【问题描述】:

我有一些带有锚元素的 asp.net MVC 应用程序。锚元素导致静态文件,如

https://server/website/folder/subFolder/anotherSubFolder/File.pdf

这些文件都托管在 IIS 的 Web 应用程序域中。 单击链接时,此文件将在新的浏览器窗口中打开。是否可以在浏览器中屏蔽此 URL?文件应该会打开,但 URL 不应指向文件的确切路径。

【问题讨论】:

    标签: c# asp.net-mvc url


    【解决方案1】:

    当然, 在您想要的任何Controller 中,使用名称File 创建一个Action。动作的主体是:

    public ActionResult File(string fileName)
    {
        var path = System.Web.HttpContext.Current.Server.MapPath("~/files/" + fileName);
        var fileStream = new FileStream(path,
            FileMode.Open,
            FileAccess.Read
        );
        var fsResult = new FileStreamResult(fileStream, "application/pdf");
        return fsResult;
    }
    

    锚点是:

    <a href="@Url.Action("File", "Home", new { filename = "file.pdf" })" target="_blank">Open File</a>
    

    这样,url就变成了这样:

    http://localhost:4268/Home/File?filename=file.pdf

    【讨论】:

    • 阿巴斯,感谢您的回复。我会试试这个,然后告诉你结果如何。
    猜你喜欢
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    相关资源
    最近更新 更多