Javascript 查看网络文件夹中的文件

Javascript 查看网络文件夹中的文件,javascript,networking,asp-classic,Javascript,Networking,Asp Classic,我们有一个网络驱动器(G:),可以存放公共文件,这意味着公司中的任何人都可以访问它。我需要做一个页面,可以动态地找到给定目录中的所有文件,这样我就可以显示它们的链接 目前,我必须对所有文件进行硬编码,如下所示: <a target="_blank" href="file:\\\\\server\path\to\file.docx">Document</a> 以下是我使用的ASP代码: Set NetworkObject = CreateObject("WScript.N

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

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

<a target="_blank" href="file:\\\\\server\path\to\file.docx">Document</a>
以下是我使用的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实现这一点。不过,我找不到任何东西

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

编辑

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


<a target="_blank" href="file:\\\\\server\path\to\file.docx">Document</a>
这应该适用于IE和Outlook/Word。它不会在Chrome或Firefox中工作,这是故意的——链接会无声地失败

根据浏览器的不同,链接到网络驱动器上的文件可能非常繁琐。例如:

解决方法:
在网络服务器上安装IIS并将路径更改为


编辑:请确保在IIS中启用目录浏览。我在使用ASP运行的内部站点上使用以下内容以达到相同目的

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

脚本的调用如下所示:

<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>

$(文档).ready(函数(){
$('#容器_id')。文件树({
root:“/InetPub/wwwroot/无论您的站点是什么”,
脚本:'./includes/Connectors/jqueryFileTree.aspx',
扩展速度:1000,
折叠速度:250,
多重文件夹:对
},函数(文件){
警报(文件);
});         
});
我对脚本做了一些修改,因为它只会列出文件,而不会通过添加以下内容来正确链接,现在它将根据浏览器的能力打开或下载

<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>

函数openFile(文件){
window.open(file.replace(“InetPub/wwwroot/”,“”);
}
$(文档).ready(函数(){
$('#容器_id')。文件树({
root:“/InetPub/wwwroot/无论您的站点是什么”,
脚本:'./includes/Connectors/jqueryFileTree.aspx',
扩展速度:1000,
折叠速度:250,
多重文件夹:对
},函数(文件){
openFile(文件);
});         
});

我可能应该提到我对服务器具有读写访问权限,但这是我的能力范围。我看到你链接的帖子,所有用户都将使用IE,因此也不需要跨浏览器解决方案。@DavidStarkey现在不需要了!=不需要。我曾经处于一个类似的位置,保证每个人都在使用IE;随后,新的营销总监将该部门改为OSX,医生们开始使用iPad和Android设备进行BYOD。在它成为实际问题之前,不妨跳过它。@DavidStarkey回到Farhan的解决方案,您最好将共享添加为IIS中的虚拟目录,并编写页面,将其视为本地文件夹。您可以使用
filesystemobject
列出所有文件,前提是运行ASP页的用户帐户具有对文件夹结构的读取权限。你想让最终用户知道什么比直接浏览目录更方便?@TimWilliams他们想要一个中心位置来放置与这一系列项目相关的所有不同工具的链接。我更新了问题以包含我尝试的ASP代码。
<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>