我正在研究一個Web應用程序,它需要有一個鏈接從文件服務器打開文檔文件夾。該文件夾可以在新的瀏覽器選項卡或新窗口中打開,也可以使用計算機的默認文件瀏覽器程序(即Windows資源管理器)打開。這個JavaScript應該做的伎倆:如何通過Firefox和Chrome網站上的鏈接打開文件夾?
window.open('file://///fileserver.companyname/public/Documents/','_blank);
和這個網站也應該工作:
<a href="file://///fileserver.companyname/public/Documents/">Open Documents</a>
但這些都只能工作在Internet Explorer中,和我們的用戶經常使用Firefox和Chrome。顯然Firefox和Chrome的默認安全設置不允許您在從「http://」網站調用請求時打開「file://」。
我已經看到這個頁面的幾個引用:Links to local pages do not work它描述了爲什麼你不能使用Firefox從網頁打開文件,並提供了一些解決方法。不幸的是,它只提供兩種選擇:在每個瀏覽器實例上安裝一個插件,或爲每個瀏覽器實例創建一個用戶首選項文件。這些選項都不可接受,因爲我們有太多的用戶。我工作的公司不願意將任何東西應用於需要訪問此鏈接的每臺機器。除此之外,無論如何,我都嘗試過插件和首選項文件,唯一能爲我工作的是IE Tab插件。我認爲LocalLinks不起作用的原因是因爲我試圖打開一個文件夾,而不是一個文件。
這個stackoverflow問題描述了Chrome的類似選項:Can Google Chrome open local links?但是,LocalLinks插件不適用於我,無論如何也不接受插件。
我還發現了一個網站,建議使用命令行參數頂部打開的文件在Chrome(http://www.askyb.com/chrome/open-local-file-in-google-chrome/)和一個展示瞭如何運用自動參數(https://askubuntu.com/questions/160245/making-google-chrome-option-allow-file-access-from-files-permanent),但如果我正確地讀它,它仍然涉及應用更改到每臺訪問我們網站的電腦。
有任何方式兩個Firefox和Chrome打開一個文件夾完全編程即我的web應用程序C#或Javascript代碼中沒有插件安裝或添加的參數文件到個人電腦?我無法改變這些業務需求。我希望在C#中使用控制器動作打開文件夾(因爲我想在打開文件夾之前創建文件夾,如果它尚不存在的話)。我希望在C#中使用控制器動作打開文件夾(因爲如果它尚不存在, ,但客戶端的javascript或html是可以接受的。對於Internet Explorer,我可以在C#代碼中創建該JavaScript,方法是將其封裝在MVC C#控制器中內置的JavaScript(...)函數中。在Firefox和Chrome中測試IE Tabs時,我必須將其定義爲href鏈接,而不是打開窗口的函數,否則IE Tabs將無法將其識別爲鏈接。但這些都不是我們業務需求的可接受解決方案。
我懷疑,如果你所描述的是可能的話,那將代表一個安全漏洞。 –