【问题标题】:How to open an external file from HTML如何从 HTML 打开外部文件
【发布时间】:2022-02-05 07:53:05
【问题描述】:

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

当用户单击链接时,我希望打开文件。 它们是 excel 电子表格,而且这是一个 Intranet 环境,所以我可以指望每个安装了 Excel 的人。

我尝试了两件事:

  1. 显而易见且简单的事情:
<a href="file://server/directory/file.xlsx">Click me!</a>
  1. 我在 Google 搜索中找到的 选项:
<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 中都可以使用的任何建议?

【问题讨论】:

  • 到底是什么问题?这两个似乎都应该工作(好吧,我不太了解 VBScript,但假设代码是正确的......)。

标签: vbscript html


【解决方案1】:

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

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

【讨论】:

  • 太棒了。我知道这一定很简单。在 Ffx 和 IE 中为我工作。我正在使用 XP,为了记录。
  • 我认为你实际上可能有一个太多的斜线。 file:// 协议需要 2 个,服务器名称需要 2 个 //SERVER/。
  • 对我有用的五个斜线,而不是你期望需要的四个。不要问我为什么...
  • en.wikipedia.org/wiki/File_URI_scheme#Mozilla 第五个斜线将 file:// 之后的隐含 localhost 与服务器 //SERVER 分开
  • 很确定这个小技巧不再在谷歌浏览器中工作了,至少我不能让它在我的应用程序中工作:(
【解决方案2】:

&lt;a href="file://server/directory/file.xlsx" target="_blank"&gt; 如果我没记错的话。

【讨论】:

  • 适用于 IE,但不适用于 Firefox。将尝试通过类型不匹配的建议。
【解决方案3】:

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

这里有一个链接告诉你如何做:

Configuring IIS 6 for Office 2007

【讨论】:

    【解决方案4】:

    你可能需要一个额外的“/”

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

    【讨论】:

      【解决方案5】:

      如果文件共享不是对所有人开放,您需要通过网络服务器从文件系统在后台提供它。

      您可以使用 this "ASP.Net Serve File For Download" example 之类的东西(2 的存档副本)。

      【讨论】:

      • 在这种情况下,在他们到达此网页之前已经完成了身份验证。任何到达这里的人都应该可以访问这些文件,以及存储它们的目录。我真的很想保持简单。
      【解决方案6】:

      一个简单的文件链接是显而易见的解决方案。您只需确保链接有效并且它确实指向一个文件...

      【讨论】:

      • 我同意。那么如何在 HTML 中实现这么简单的链接呢?
      【解决方案7】:

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

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

      因此,根据您的选择,可能会创建一个客户端应用程序,该应用程序安装在您的所有客户端计算机上,然后响应特定的文件处理程序,该处理程序说在文件服务器上打开此应用程序。那么谁在做这件事并不重要,因为所有浏览器都会简单地将请求交给你。您必须创建自己的处理程序,例如 fileserver://

      【讨论】:

        【解决方案8】:

        这适用于 macOS 12 中的 Firefox 96,并且应该也适用于其他浏览器和 Windows:

        <a href="smb://server/location">open file</a>
        

        【讨论】:

          【解决方案9】:

          您的第一个想法曾经是这种方式,但我也注意到使用 Firefox 执行此操作时出现问题,请尝试直接 http:// 访问文件 - href='http://server/directory/file.xlsx'

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-03-08
            • 1970-01-01
            • 2020-11-16
            • 2023-04-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多