【问题标题】:How can I hyperlink to a file that is not in my Web Application?如何超链接到不在我的 Web 应用程序中的文件?
【发布时间】:2008-09-24 05:49:50
【问题描述】:

好的,我的网络应用程序位于 C:\inetpub\wwwroot\website

我要链接的文件位于 S:\someFolder

我可以在 web 应用程序中创建一个指向 someFolder 中文件的链接吗?

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    如果它在服务器上的不同驱动器上,您需要在 IIS 中创建一个virtual directory。然后,您将链接到“/virtdirect/somefolder/

    【讨论】:

      【解决方案2】:

      您必须通过您的网络服务器将其专门映射到某个 URL。否则,任何猜到 URL 的人都可以访问您的所有文件,而您不希望这样......

      【讨论】:

        【解决方案3】:

        您是否有另一个指向 s:\someFolder 的虚拟目录/应用程序?如果是这样,那只是一个简单的链接。

        您是否正在尝试流式传输文件?如果是这样,请查看 Response.TransmitFile 和 Response.WriteFile。

        否则,也许您可​​以创建一个处理程序 (.ashx) 来获取指定文件并将其内容流式传输回来?

        【讨论】:

          【解决方案4】:

          我认为只有两种方法 1)创建一个指向下载目录的虚拟路径 2) 调用您的 aspx/ashx 处理程序,在本地加载文件并将其发送到客户端。

          【讨论】:

            【解决方案5】:

            在操作系统级别而不是网络服务器级别工作的解决方案是创建符号链接。

            文件链接为supported on VistaWin2000 onwards 支持文件夹链接(“联结”)。

            【讨论】:

            • 这是一个很好的建议,但安全性可能是个问题,使用 VirtDirs 您可以很好地控制网络用户如何与文件夹交互,而不会破坏您的本地文件系统。
            【解决方案6】:

            这取决于您的网络服务器的配置。可能不是。您不希望 Web 服务器能够访问硬盘驱动器上的任何文件(即您的密码文件),因此只有那些在 Web 服务器的配置文件中配置为可访问的文件才能访问和链接。通常这些都保存在一个目录下。当然,您可以复制 someFolder 并将其放在您的 web 目录下,这样就可以访问它,或者如果您确定它是安全的,请更改您的 web 服务器的配置以允许访问该文件夹。

            【讨论】:

            • 在 IIS 中创建一个虚拟目录可以解决上述所有问题。您可以基于此设置安全权限并访问文件夹中的文件而无需重复..
            • 是的,正是我所说的“更改您的网络服务器的配置以允许访问该文件夹”的意思。
            猜你喜欢
            • 1970-01-01
            • 2020-10-06
            • 1970-01-01
            • 1970-01-01
            • 2021-03-07
            • 1970-01-01
            • 2015-07-10
            • 2021-12-20
            • 2012-08-15
            相关资源
            最近更新 更多