首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IIS VirtualDirectories,并从ASP.NET MVC项目访问它们的内容

IIS VirtualDirectories,并从ASP.NET MVC项目访问它们的内容
EN

Stack Overflow用户
提问于 2021-06-01 18:25:11
回答 1查看 659关注 0票数 1

随着Chromium不再允许链接到本地文件,我正在尝试测试几种解决方案,允许用户在本地网络共享上打开PDF,而不必先下载它们(当前的工作)。

我测试了一个纯JavaScript解决方案,该解决方案非常有效。

但是,我正在尝试使用IIS中的虚拟目录,该目录指向用户可以访问的文件的网络共享。

当测试和尝试导航到我保存的文件时,我会得到一个“无法找到路径错误”。

我创建了一个测试应用程序,并将其发布在我的本地机器上。

下面是我创建的虚拟目录的截图。

**下面**是我用来尝试打开文件的代码。

代码语言:javascript
复制
[HttpPost]
        public ActionResult OpenPDF()
        {

            string directory = "./pdf";
            string file = "/light.pdf";
            byte[] fileBytes = System.IO.File.ReadAllBytes(directory + file);

            return File(fileBytes, "application/pdf");
        }

我假设虚拟目录将位于根目录中。我试图找到一些在代码中访问虚拟目录的示例,但我还没有找到。

我访问的资源:

https://learn.microsoft.com/en-us/iis/configuration/system.applicationhost/sites/site/application/virtualdirectory

https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/create-virtual-directory-folder-remote-computer#:~:text=In%20the%20Internet%20Information%20Services,and%20then%20click%20Virtual%20Directory

要导航到http://localhost/MyWebsite而不是http://localhost:8080的虚拟目录

在asp.net中./、././、~/ on文件路径(URL)之间的不同

https://www.c-sharpcorner.com/UploadFile/francissvk/create-virtual-directory-in-iis/

任何帮助都将不胜感激,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-02 15:32:32

在ASP.NET核心中,您可以返回一个VirtualFileResult

在执行时使用主机提供的机制将使用虚拟路径指定的文件写入响应的FileResult。

或者您可以执行一个Server.MapPath("~/pdf/light.pdf")来获取虚拟路径。

返回对应于指定虚拟路径的物理文件路径。

在您的示例代码中,您可以这样使用它:

代码语言:javascript
复制
[HttpPost]
public ActionResult OpenPDF()
{

    string directory = "/pdf"; // notice I removed the . 
    string file = "/light.pdf";
    var filepath = Server.MapPath("~" + directory + file);
    byte[] fileBytes = System.IO.File.ReadAllBytes(filepath);

    return File(fileBytes, "application/pdf");
}

请记住,如果要访问网络共享,您的应用程序池需要在访问所述网络共享的身份下运行。

要下载新选项卡中的文件,请尝试客户端html中的<a href="/file.pdf" target="_blank">file</a>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67794205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档