如何从HTML打开外部文件
我想要基本html页面上的超链接列表,这些超链接指向我们公司内部网上的文件。
当用户单击链接时,我希望打开文件。
它们是excel电子表格,这是一个Intranet环境,因此我可以指望每个安装了Excel的人。
我已经尝试了两件事:
- 显而易见的事情很简单:
<a href="file://server/directory/file.xlsx">Click me!</a>
- 我在Google搜索中找到的vbscript选项:
<HTML> <HEAD> <SCRIPT LANGUAGE=VBScript> Dim objExcel Sub Btn1_onclick() call OpenWorkbook("\server\directory\file.xlsx") End Sub Sub OpenWorkbook(strLocation) Set objExcel = CreateObject("Excel.Application") objExcel.Visible = true objExcel.Workbooks.Open strLocation objExcel.UserControl = true End Sub </SCRIPT> <TITLE>Launch Excel</Title> </HEAD> <BODY> <INPUT TYPE=BUTTON NAME=Btn1 VALUE="Open Excel File"> </BODY> </HTML>
我知道这是一个非常基本的问题,但我将不胜感激。
编辑:在IE和Firefox中都可以使用的建议吗?
解决方案
如果我没记错的话,请<a href="file://server/directory/file.xlsx" target="_blank">`。
第一个想法曾经是这种方式,但是我也注意到使用Firefox执行此操作时遇到的问题,请尝试直接将http://指向文件href =" http://server/directory/file.xlsx"
一个简单的文件链接是这里的明显解决方案。我们只需要确保链接有效并且它实际上指向文件即可。
如果文件共享未对所有人开放,则需要通过Web服务器在后台从文件系统提供该文件共享。
我们可以使用类似" ASP.Net服务文件供下载"示例(归档副本2)之类的东西。
我们可能需要一个额外的" /"
<a href="file:///server/directory/file.xlsx">Click me!</a>
如果Web服务器是IIS,则需要确保将新的Office 2007(我看到带有xlsx后缀)的mime类型添加到IIS中的mime类型列表中,否则它将拒绝处理未知文件类型。
这里是一个链接,告诉我们如何:
为Office 2007配置IIS 6
尝试像这样设置链接的格式(看起来让人讨厌,但对我来说,它在Vista下的Firefox 3中可以使用):
<a href="file://///SERVER/directory/file.ext">file.ext</a>
我们将不得不依靠每个人的计算机具有正确的文件关联。如果我们尝试从网页中的JavaScript / VBScript打开应用程序,则生成的应用程序将被自身沙盒化(意味着权限降低),或者将出现许多安全提示。
我的建议是针对SharePoint服务器。这是我们知道他们可以做的事情,我们可以在适当位置进行编辑,但问题在于他们如何设法实现这一目标。我的猜测是与Office的直接集成。无论哪种方式,这都不是Internet设计的目的,因为我假设我们希望他们编辑原始文档,而不是简单地创建自己的副本(这是file://
的默认行为)将是。
因此,根据选择,可能会创建一个客户端应用程序,该客户端应用程序将安装在所有客户端计算机上,然后响应特定的文件处理程序,该文件处理程序表示将在文件服务器上打开此应用程序。然后,由谁来进行操作并不重要,因为所有浏览器都会将请求交给我们。我们将必须创建自己的处理程序,例如fileserver://
。