2009-05-24 220 views
2

我有一個用戶填寫的表單(jsp頁面)。其中一個輸入是「文件」類型。有一個預覽按鈕,它將彈出一個新窗口並使用JavaScript來佈置填充的表單進行顯示。 「文件」輸入將顯示爲超鏈接,當用戶點擊超鏈接時,它應該打開附件。所以,如果你附加pdf,我希望當我點擊超鏈接時,福昕閱讀器將打開。如果它是一個文本文件,記事本將打開。使用file打開網頁中的本地文件://

我嘗試使用file://但似乎沒有發生。它似乎是MSIE中的一個安全功能,其中file://協議被鎖定。

如何在沒有(ActiveX,ajax)的情況下實現此功能?

回答

3

file://僅指向用戶計算機上的本地文件系統,並且經常受到更多鎖定的安全措施的影響。它根本不能依賴於瀏覽器甚至允許file://協議訪問。

安全地做你想做的事情的唯一方法是用文件完全提交表單並使用服務器端語言(PHP,ASP.NET,Rails,Django,隨便選擇)渲染一個包含'漂亮'的表單數據佈局以及文檔預覽。這就是論壇的做法,你點擊「預覽」按鈕,你的文章被提交給服務器,服務器呈現它供你批准,你批准它,並保存到數據庫併發布。如果您不批准它,它會被丟棄並且永遠不會將其傳送到數據庫。

如果你不想讓用戶離開頁面,你可以將它滾動到你的驗證中,並做一個AJAX回發。有一些javascript庫專門用於像這樣靜靜地序列化和傳輸表單,然後返回結果。 JQuery Forms就是一個很好的例子(注意:需要JQuery)。

+0

我想他是指在用戶上傳文件之前。喜歡檢查它的正確文件。因此,如果他們說輸入他們想要上傳「C:/MyTextdocument.txt」本身,他想打開「file:// c:/MyTextdocument.txt」,我希望工作?因爲用戶已經指定了文件的本地路徑。 – Sphvn 2010-07-16 02:43:39