查看网络文件夹中的文件

View files in a network folder

本文关键字:文件 文件夹 网络      更新时间:2023-09-26

我们有一个网络驱动器(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,因此跨浏览器不是问题。 此外,我仅限于读写访问权限,因此不幸的是,将网络驱动器转换为网络服务器或一些与管理相关的解决方案对我来说不是一个可行的解决方案。

<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中启用目录浏览

出于同样的目的,我在与 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>