2011-02-22 83 views
0

我正在對傳統應用程序進行替換應用程序。由於傳統應用程序的某些設計限制,「附件」在我們的數據庫中存儲爲字符串路徑(通常存儲在Windows共享驅動器上的文件)。然後,傳統應用程序可以通過打開Windows命令shell並執行給定路徑來「打開」附件。鏈接到Web應用程序中的本地內容

傳統(Oracle Forms)應用程序正在被基於JSF的J2EE Web應用程序逐步淘汰。新應用程序需要能夠以某種方式'打開'或鏈接到這些傳統附件。這甚至有可能嗎?我試圖使用file:// URL,但是有很多使用它們的注意事項。他們只能在IE中的遠程主機上工作,firefox/chrome(以及我認爲的其他現代瀏覽器)阻止本地文件URL。

只能在IE上工作的東西,可以適應這種特殊功能。我進一步遇到了帶有空格的文件路徑問題。由於某種原因,如果IE遇到一個帶有空格的文件路徑,說

C:\Documents and Settings\user123\My Documents\testing\someFile.txt 

它拒絕打開該鏈接。瀏覽器自動使用URL編碼的'%20'替換空格('')。

相關的鏈接,我試圖像外觀:

<a href="file:///C:\Documents and Settings\user123\My Documents\testing\someFile.txt">link</a> 

有什麼簡單到這一點,我很想念?或者有沒有更簡單的方法來做到這一點?

我不太確定該標記什麼,因此隨時可以根據需要重新標記。

回答

7

經過一番廣泛測試中,我已經得出了以下結論:

  • 只有IE會打開文件:是從遠程主機頁面上//鏈接,其他瀏覽器將徹底阻止他們,當用戶點擊他們會發生什麼。
  • IE只會打開文件://網址指向如果用戶點擊一個文件駐留在網絡驅動器上
    • 文件://鏈接指向一個文件的用戶的本地驅動器上,什麼都不會發生,他們將得到沒有錯誤。
  • 如果用戶單擊指向網絡文件的文件://鏈接,它將在可能的情況下在瀏覽器中打開。
  • 如果file:// url指向一個無效位置(未映射的網絡驅動器,網絡驅動器上不存在的文件),Windows將顯示一個彈出錯誤。需要進行URL編碼爲%20

  • 空間中的文件路徑希望這可以幫助其他人誰正在尋找的文件URL信息。

  • 0

    如果使用雙引號(")路徑周圍的文件(你可能會需要URL編碼這些爲%22),窗口將被確定的完整路徑:

    <a href="file:///%22C:\Documents and Settings\user123\My Documents\testing\someFile.txt%22">link</a> 
    
    +0

    即使在指向另一個本地文件的簡單本地html文件中,我也無法使其工作。也許有一些特殊字符逃脫我失蹤? – BuffaloBuffalo

    相關問題