0

我们有一个G:存放公共文件的网络驱动器 ( ),这意味着公司中的任何人都可以访问它。我需要创建一个可以动态查找给定目录中所有文件的页面,以便为它们显示链接。

目前我必须像这样对所有文件进行硬编码:

<a target="_blank" href="file:\\\\\server\path\to\file.docx">Document</a>

这是一个痛苦,因为页面设置为与多个项目一起使用,并且这些文件对于每个项目都是不同的。

我想知道是否有一种方法可以使用某种 JS 或 ASP 经典循环链接到这些文件。

到目前为止,我已经MapNetworkDrive在 ASP 中尝试过,但一直收到此错误

No network provider accepted the given network path.

这是我使用的 ASP 代码:

Set NetworkObject = CreateObject("WScript.Network")
set fs=Server.CreateObject("Scripting.FileSystemObject")

NetworkObject.MapNetworkDrive "", "\\Server\Folder", False, username, pass

set fo=fs.GetFolder("G:\Path\To\File.doc")

我也尝试过,MapNetworkDrive但也没有成功。

由于所有用户都将G:在其本地计算机上映射网络驱动器并可以访问所有文件,因此我认为有一种方法可以使用 JS 来做到这一点。我没有任何运气找到任何东西。

此外,我不能简单地将所有文件上传到网络服务器,因为它是一个空间有限的小型服务器。在两台不同的服务器上拥有相同的文件似乎也是多余的。另外,这是一个手动过程,我不确定对于已经存在或即将到来的所有不同项目需要访问哪些文件。

编辑

所有将使用此功能的用户都在使用 IE,因此跨浏览器不是问题。此外,我仅限于读写访问,因此不幸的是,将网络驱动器变成网络服务器或一些与管理员相关的解决方案对我来说不是一个可行的解决方案。

4

2 回答 2

1
<a target="_blank" href="file:\\\\\server\path\to\file.docx">Document</a>

这应该适用于 IE 和 Outlook/Word。故意在 Chrome 或 Firefox 中不起作用 - 链接将静默失败。

根据浏览器的不同,链接到网络驱动器上的文件可能非常繁琐。例如:https ://stackoverflow.com/a/5109618/973155

解决方法:
在网络服务器上设置 IIS 并将路径更改为http://example.com/file.docx

编辑:确保在 IIS 中启用目录浏览

于 2013-09-16T17:58:59.360 回答
0

我在使用 ASP 运行的内部站点上使用以下内容用于相同目的。

jQuery File Tree 是一个可配置的、用于 jQuery 的 AJAX 文件浏览器插件。ABeautifulSite.net 未维护的 jQuery 文件树 (v1.01)(2008 年 4 月 12 日)的延续

https://github.com/daverogers/jQueryFileTree

该脚本调用如下:

<script type="text/javascript">
        $(document).ready( function() {

            $('#container_id').fileTree({
              root: '/InetPub/wwwroot/whatever your site is',
              script: './includes/Connectors/jqueryFileTree.aspx',
              expandSpeed: 1000,
              collapseSpeed: 250,
              multiFolder: true
            }, function(file) {
                alert(file);
            });         
        });
</script>

我稍微修改了脚本,因为它只会列出文件而不是通过添加以下内容正确链接它现在将根据您的浏览器功能打开或下载

<script type="text/javascript">
        function openFile(file) {
           window.open(file.replace("InetPub/wwwroot/",""));
        }

        $(document).ready( function() {

            $('#container_id').fileTree({
              root: '/InetPub/wwwroot/whatever your site is',
              script: './includes/Connectors/jqueryFileTree.aspx',
              expandSpeed: 1000,
              collapseSpeed: 250,
              multiFolder: true
            }, function(file) {
                openFile(file);
            });         
        });
</script>
于 2015-05-07T06:11:57.753 回答