2011-04-26 264 views
22

有沒有辦法將工作鏈接加入到Windows共享文件夾到HTML頁面中?例如。鏈接到\\server\folder\pathWindows共享文件夾的URL

爲簡單起見,假設該頁面將在Windows機器上打開(並在其中server所在,當然,同樣的內部網。)

我試着file://方案中的一些技巧,但他們中沒有一個似乎工作。

回答

18

我覺得有兩個問題:

  1. 你需要躲避斜線。
  2. 瀏覽器安全。

說明:

  1. 我檢查了我的一個,我有模式:

    <a href="file://///server01\fshare\dir1\dir2\dir3">useful link </a> 
    

    請注意,我們結束了5個斜槓協議後(file:

  2. Firefox將嘗試阻止跨站點腳本。我的解決方案是修改配置文件目錄中的prefs.js。您將添加兩行:

    user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess"); 
    user_pref("capability.policy.localfilelinks.sites", "http://mysite.company.org"); 
    
+1

是的,瀏覽器安全是問題。但我不知道目標瀏覽器是否是Firefox。任何其他想法? – alex 2011-04-27 05:21:14

+0

看一下類似問題的答案,IE應該可以工作,Firefox可以調整,但其他主流瀏覽器會阻止這一點。 [stackoverflow.com/questions/855614](http://stackoverflow.com/questions/855614) – Bill 2011-04-27 16:32:46

-2

這取決於你想如何合併它。 場景 1.單擊鏈接 2.資源管理器窗口上彈出

<a href="\\server\folder\path" target="_blank">click</a> 

如果有必要在一家豪華的UI - 那麼它也就勉強作爲一個解決方案。

+4

我認爲這不會工作,除非HTML本身加載了'file://'URI方案。至少它不適用於基於WebKit的Chrome。 – alex 2011-04-27 05:23:12

1

如果你被允許去進一步然後使用Javascript/HTML設施 - 我會使用Apache Web服務器通過HTTP來表示你的目錄列表。

如果此解決方案合適。這些步驟如下:從鏡子的一個

  1. 下載Apache HHTP服務器http://httpd.apache.org/download.cgi

  2. 解壓/安裝(如果MSI)它的目錄,例如C:\選擇\阿帕奇(該指令是窗)

  3. 網絡forlder映射爲Windows上的本地驅動器(\服務器\文件夾中假設驅動器H :)

  4. 開放的conf/httpd.conf文件

  5. 確保下一行存在但未被註釋

    LoadModule autoindex_module modules/mod_autoindex。所以

  6. 添加目錄配置

<Directory "H:/path">

Options +Indexes

AllowOverride None

Order allow,deny

Allow from all

</Directory> 7.啓動Web服務器並確保遠程文件夾的目錄列表可用http提供。命中本地主機/路徑 8.使用裏面你的網頁的框架來訪問列表

什麼遺漏: 1.您mignt需要的主機名更看中的配置,參考的Apache Web服務器的文檔。在DNS服務器上註冊主機名稱

  1. 映射到網絡驅動器可能不起作用,我沒有檢查。作爲一個可行的解決方案 - 將您的Web服務器與smb服務器放在同一臺機器上。
8

文件協議URI是這樣

文件:// [主持人]/[路徑]

這就是爲什麼你經常會看到這樣的文件URL(3個斜線)文件:/// C :\路徑...

所以,如果主機是SERVER01,你想

文件:// SERVER01 /文件夾/路徑....

這是根據文件://協議上的維基百科頁面,並使用.NET的Uri.IsWellFormedUriString方法進行檢查。