查看网络文件夹中的文件

时间:2013-09-16 17:34:11

标签: javascript networking asp-classic

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

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

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

这很痛苦,因为页面设置为使用多个项目,并且每个项目的文件都不同。

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

到目前为止,我在ASP中尝试了MapNetworkDrive,但仍然遇到此错误

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实现此目的。我找不到任何运气。

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

修改

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

2 个答案:

答案 0 :(得分: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中启用目录浏览

答案 1 :(得分: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>