如何从HTML打开外部文件

时间:2008-09-19 12:47:52

标签: html

我想要一个基本html页面上的超链接列表,它指向我们公司内部网上的文件。

当用户点击该链接时,我希望该文件打开。 它们是excel电子表格,这是一个内部网环境,所以我可以指望所有安装了Excel的人。

我尝试了两件事:

  1. 明显而简单的事情:
  2. <a href="file://server/directory/file.xlsx">Click me!</a>
    
    1. 我在Google搜索中找到的选项:
    2. <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中都有效的建议吗?

8 个答案:

答案 0 :(得分:15)

尝试格式化这样的链接(看起来很糟糕,但它适用于Vista下的Firefox 3):

<a href="file://///SERVER/directory/file.ext">file.ext</a>

答案 1 :(得分:2)

<a href="file://server/directory/file.xlsx" target="_blank">如果我没记错的话。

答案 2 :(得分:1)

如果文件共享未向所有人开放,则需要通过Web服务器在文件系统的后台提供文件共享。

您可以使用类似this "ASP.Net Serve File For Download" example的内容(2的归档副本)。

答案 3 :(得分:1)

您可能需要额外的“/”

<a href="file:///server/directory/file.xlsx">Click me!</a>

答案 4 :(得分:1)

如果您的Web服务器是IIS,则需要确保将新的Office 2007(我看到xlsx后缀)mime类型添加到IIS中的mime类型列表中,否则它将拒绝提供未知文件类型

以下是一个链接,告诉您如何:

Configuring IIS 6 for Office 2007

答案 5 :(得分:0)

这里有一个明显的解决方案。你只需要确保链接有效并确实指向文件......

答案 6 :(得分:0)

您将不得不依赖具有正确文件关联的每个人的机器。如果您尝试在网页中从JavaScript / VBScript打开应用程序,则生成的应用程序要么自己被沙箱化(意味着权限降低),要么会有很多安全提示。

我的建议是查看SharePoint服务器。这是我们知道他们所做的事情,您可以在适当的位置进行编辑,但问题在于他们如何设法实现这一目标。我的猜测是直接与Office集成。无论哪种方式,这都不是互联网旨在做的事情,因为我假设您希望他们编辑原始文档而不是简单地创建自己的副本(这是file://的默认行为是

因此,根据您的选择,可能会创建一个安装在所有客户端计算机上的客户端应用程序,然后响应特定的文件处理程序,该文件处理程序将在文件服务器上打开此应用程序。然后,由于所有浏览器都会将请求移交给您,因此无论谁这样做都没关系。您必须创建自己的处理程序,如fileserver://

答案 7 :(得分:-1)

你的第一个想法曾经是这样,但我也注意到使用Firefox做这个问题,直接尝试http://到文件 - href ='http://server/directory/file.xlsx'