如何让 IE 以外的浏览器接受文件 url?
Posted
技术标签:
【中文标题】如何让 IE 以外的浏览器接受文件 url?【英文标题】:How can I get browsers other than IE to accept file urls? 【发布时间】:2010-12-01 10:58:26 【问题描述】:我们的 Intranet Web 应用程序从我们的共享网络文件服务器链接到出版物、文档或其他资源的情况并不少见。
过去,我们在制作如下链接时遇到了一些麻烦:
file://fileserver1/folderofgoodies/rules.pdf
\\fileserver1\folderofgoodies\rules.pdf
我们没有遇到麻烦的原因是大楼里的每个人都使用 IE6 或 IE7(很少有 IE8)。这两种风格的 URL 在 Microsoft 浏览器中似乎都能正常工作。
但如果您尝试在其他浏览器(尤其是 Firefox)中单击此类链接,什么都不会发生!
在我正在开发的一个新的 Intranet Web 应用程序上,我一直在尝试确保跨浏览器支持,但我承认,至少在 Firefox 3.5.3 中,任何指向本地计算机或本地网络资源的链接似乎都被忽略了我还没有检查其他浏览器。
有什么方法可以更改链接到所述文件的方式,以便 Firefox 等浏览器接受它们?我不能做任何需要为每个用户/每台计算机安装脚本、软件、扩展或任何其他解决方案的事情。
我意识到抑制所述链接是一件安全的事情,但这些链接将仅来自受信任的本地 Intranet 位置,所以...
【问题讨论】:
【参考方案1】:我认为你唯一的选择是重新配置 Firefox,但不幸的是你说你不能这样做。
【讨论】:
确实,我们的目标是让事情“正常工作”,而不是让用户有责任重新配置设置或以其他方式更改他们的计算机/浏览器(因为他们中的许多人甚至不是远程计算机专家) .【参考方案2】:您可以将文件服务器路径作为虚拟目录映射到您的 Intranet 站点并通过 http 链接。
【讨论】:
您能举个例子吗?这是否意味着搞乱 IIS 或类似的东西?或者这是我可以在应用程序级别做的事情?如果有帮助,这是一个 ASP.NET Web 应用程序。【参考方案3】:Mozilla 应用程序阻止指向本地文件的链接。唯一的方法是将插件安装到 Firefox。这个link 描述了其中的一些。
【讨论】:
【参考方案4】:如果这是 Intranet,您可以构建一个小助手服务器/页面/webservice/您将链接到的任何内容并将文件名作为参数传递:
http://server/getlocalfile?path=file://fileserver1/folderofgoodies/rules.pdf
顺便说一句,您将从扩展的安全性中受益。
【讨论】:
这会从大多数浏览器启动下载提示,还是会调用默认处理程序?例如,我更喜欢在选项卡内 Adobe Reader 插件中打开 PDF ......或者至少在桌面客户端 Adobe Reader 中打开......我想如果浏览器提供“打开或保存”是可以接受的" 然后他们可以点击打开...嗯。 如果您告诉浏览器这样做,它就会这样做。例如,请参阅support.microsoft.com/kb/260519。基本上,您设置内容类型和文件名。 如果您需要特定的 mime 类型,另请参阅 ***.com/questions/81283/…,以便 Adobe 插件将其识别为 PDF。 还有aspalliance.com/259 以获得更简单的解决方案,尽管您确实可以更好地检测文件类型,而不是使用一些硬编码的类型。以上是关于如何让 IE 以外的浏览器接受文件 url?的主要内容,如果未能解决你的问题,请参考以下文章