42

有没有办法将Windows 共享文件夹的工作链接合并到 HTML 页面中?例如链接到\\server\folder\path?

为简单起见,假设该页面将在 Windows 机器上打开(server当然,在该页面所在的同一 Intranet 上。)

我已经尝试了一些file://计划技巧,但它们似乎都不起作用。

4

4 回答 4

36

我认为有两个问题:

  1. 你需要避开斜线。
  2. 浏览器安全。

解释:

  1. 我检查了我的一个,我有模式:

    <a href="file://///server01\fshare\dir1\dir2\dir3">useful link </a>
    

    file:请注意,我们在协议 ( )后面加上了 5 个斜线

  2. Firefox 将尝试阻止跨站点脚本。我的解决方案是修改配置文件目录中的prefs.js。您将添加两行:

    user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess");
    user_pref("capability.policy.localfilelinks.sites", "http://mysite.company.org");
    
于 2011-04-26T21:57:21.147 回答
10

文件协议 URI 是这样的

文件://[主机]/[路径]

这就是为什么您经常看到这样的文件 URL(3 个斜杠)file:///c:\path...

所以如果主机是server01,你想要

文件://server01/文件夹/路径....

这是根据关于 file:// 协议的维基百科页面,并使用 .NET 的 Uri.IsWellFormedUriString 方法进行检查。

于 2013-11-06T17:32:27.643 回答
1

如果您被允许更进一步,那么 javascript/html 设施 - 我将使用 apache Web 服务器通过 http 表示您的目录列表。

如果这个解决方案是合适的。这些是步骤:

  1. 从其中一个镜像http://httpd.apache.org/download.cgi下载 apache hhtp 服务器

  2. 将其解压缩/安装(如果是 msi)到目录,例如 C:\opt\Apache(该指令适用于 Windows)

  3. 将网络文件夹映射为 Windows 上的本地驱动器(\server\folder 比方说驱动器 H:)

  4. 打开 conf/httpd.conf 文件

  5. 确保下一行存在且未注释

    LoadModule autoindex_module 模块/mod_autoindex.so

  6. 添加目录配置

<Directory "H:/path">

Options +Indexes

AllowOverride None

Order allow,deny

Allow from all

</Directory> 7. 启动 web 服务器并确保远程文件夹的目录列表可通过 http 访问。点击 localhost/path 8. 在你的网页中使用一个框架来访问列表

遗漏: 1. 您可能需要更多花哨的主机名配置,请参阅 Apache Web Server 文档。在 DNS 服务器中注册主机名

  1. 到网络驱动器的映射可能不起作用,我没有检查。作为一种可能的解决方案 - 将您的 Web 服务器托管在与 smb 服务器相同的机器上。
于 2011-04-27T19:46:14.793 回答
-2

这取决于您要如何合并它。场景 1. 点击链接 2. 弹出资源管理器窗口

<a href="\\server\folder\path" target="_blank">click</a>

如果需要花哨的 UI - 那么它几乎不会作为解决方案。

于 2011-04-26T20:51:44.700 回答