2013-09-16 35 views
0

我們有一個存放公共文件的網絡驅動器(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來做到這一點。我沒有找到任何運氣。

此外,我不能簡單地上傳所有的文件到網絡服務器,因爲它是一個空間有限的小型服務器。在兩臺不同的服務器上擁有相同的文件似乎也是多餘的。另外,這是一個手動過程,我不確定哪些文件需要訪問所有已經存在或即將到來的不同項目。

編輯

將要使用這項功能的用戶使用IE所以跨瀏覽器是不是一個問題。另外,我僅限於讀寫訪問,因此將網絡驅動器轉換爲網絡服務器或某些與管理員相關的解決方案不幸並不是我可行的解決方案。

+0

您可以使用'filesystemobject'列出所有文件,前提是運行ASP頁的用戶帳戶已經讀取了acc文件夾結構。對於最終用戶來說,你想要達到什麼目標比直接瀏覽目錄更方便? –

+0

@TimWilliams他們希望有一箇中心位置來容納與這一系列項目相關的所有不同工具的鏈接。我更新了問題以包含我嘗試的ASP代碼。 –

回答

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

+0

我可能應該提到我擁有對服務器的讀寫訪問權限,但這是我的能力範圍。我已經看到你鏈接的帖子,所有用戶都將使用IE瀏覽器,因此不需要跨瀏覽器解決方案。 –

+1

@DavidStarkey現在不需要!=不需要。我曾經在類似的位置保證每個人都使用IE;然後新營銷總監將該部門更改爲OSX,醫生開始使用iPad和Android設備進行自帶設備。在它成爲一個實際問題之前,不妨跳到它的前面。 – AnonJr

+0

@DavidStarkey並回到Farhan的解決方案,你最好將共享作爲虛擬目錄添加到IIS中,並寫入頁面以將其視爲本地文件夾。 – AnonJr

0

我使用上遵循我們的內部網站與ASP運行在同一目的。

jQuery File Tree是一個用於jQuery的可配置AJAX文件瀏覽器插件。從ABeautifulSite延續未保留的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> 
相關問題