2015-11-03 89 views
0

我在每臺客戶端計算機上安裝了一個軟件,軟件定義了新的協議,當我的客戶端調用瀏覽器的協議時,軟件將在那裏運行計算機並執行一些文件轉移操作。使用網絡瀏覽器讀取客戶端上的文件內容

例如,如果客戶端在瀏覽器中發出LPL://-s 109.107.108.7 -f c:\tmp\file.big,軟件將運行並將file.big轉移到服務器。

現在我在定位客戶端的完整文件路徑時遇到問題,我瞭解現代瀏覽器爲了安全起見阻止獲取完整路徑,但是我需要使用web讀取我的客戶端的文件內容。

有一個變通來解決這個issuse

+0

你不能這樣做 - _「但我需要!」_ - 哦,現在你可以...不,這是不可能從網絡瀏覽器。嘗試搜索。如果你真的必須和你可以控制客戶端,可以使用Flash/Silverlight/Java applet或桌面應用程序。 – CodeCaster

+0

好的,有沒有辦法創建或獲取一個虛假的路徑來達到內容,所以我可以上傳它與我的軟件? –

+1

[在各種瀏覽器的javascript中讀取客戶端上的文件內容]的可能副本(http://stackoverflow.com/questions/750032/reading-file-contents-on-the-client-side-in-javascript-在-不同的瀏覽器) – Rob

回答

0

Java和Silverlight的可能/其他NPAPI插件也許能夠做到這一點,但是那是因爲他們不沙盒。他們可以訪問計算機上的文件夾和文件,使其與您實際安裝在計算機上的程序一樣強大(並且可能具有破壞性)。換句話說,Java可以用來製造不需要安裝的病毒。這是現代瀏覽器切換到ppapi插件(如無法自由訪問文件系統)的原因之一。 Chrome甚至不支持npapi。

始終有一種方法可以通過瀏覽器發送文件,它是在代碼中使用<input type="file" />元素,並讓用戶手動指定路徑。如果您需要在本地機器上實際使用此文件,則可以使用Flash,但由於您想要執行的操作是在線發送的,因此您沒有理由使用它。

相關問題