2012-12-08 82 views
0

我有一個內部Perl Web應用程序(Windows操作系統),我需要找到從我的應用程序用用戶默認文件瀏覽器打開共享文件夾的最佳方式。我更喜歡一些Perl模塊或者一些跨瀏覽器的方法(我不知道用戶使用什麼瀏覽器)。我試過file:///,但我在尋找更好的東西。從Web應用程序打開共享文件夾

+0

你如何定義「共享文件夾」?您的目標是什麼操作系統和文件管理器?請記住,Firefox不允許跟隨來自HTTP服務文檔的'file://'-URL。 (匿名)FTP可能是最便攜的解決方案,但是非常受限制。理解你打算共享資源的意圖也是很好的。 – amon

回答

0

如果您試圖實現的就像訪問samba共享上的文件,我會建議使用UNC路徑(\ yourserver \ shared_folder \ filename)。如果您指向一個實際的文件,它將被Windows中與該擴展名關聯的默認程序打開。如果指向一個文件夾,那麼Windows資源管理器將在該文件夾中打開,就像在「開始」 - >「運行」對話框中鍵入UNC路徑一樣。

因此,在perl中,如果您的共享文件夾位於帶有共享「電影」的名爲「phobos」的服務器上,則如下所示。

system('\\phobos\movies'); # mind the quoting!! 

如果你試圖打開的默認程序Windows中的文件,你會使用類似:

system('\\phobos\movies\my_cool_movie.avi'); # mind the quoting!! 

難道這就是你的意思是你的問題?

+0

即使使用單引號,也有轉義碼:\\→\。因此,反斜槓是魔鬼的方式,甚至Windows也能理解正斜槓。 – amon

+0

@amon,真的,但除了這個問題。這個用戶顯然是在Windows上,用正斜線或雙斜槓混淆他似乎有點矯枉過正。我只想指出,他喜歡訪問的路徑的簡單系統調用應該在Windows上工作。無論如何,他有可能不會使用硬編碼路徑,反正很可能需要雙引號來插入他使用的變量。系統(「\\\\ phobos \\電影」);'應該做的伎倆。 – TiWu

+1

順便說一下,只有在資源要從瀏覽器訪問時才能使用正斜槓。當你通過'\\'時,Windows認爲你的意思是'http://'。 例如'\\ wdtvlive'適用於我,但'// wdtvlive'打開瀏覽器並顯示錯誤頁面。 – TiWu

相關問題