如何超链接到不在Web应用程序中的文件?

时间:2020-03-06 14:38:40  来源:igfitidea点击:

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

我要链接的文件在S:\ someFolder中

我可以在Web应用程序中建立一个链接,该链接将直接指向someFolder中的文件吗?

解决方案

如果它在服务器上的其他驱动器上,则需要在IIS中创建一个虚拟目录。然后,我们将链接到"/ virtdirect / somefolder /"

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

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

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

我们是否正在尝试流回文件?如果是这样,请查看Response.TransmitFile和Response.WriteFile。

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

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

在OS级别而不是Web服务器级别起作用的解决方案是建立符号链接。

Vista上支持到文件的链接,而Win2000以后则支持到文件夹的链接("连接")。