2012-06-08 63 views
0

我必須使用Button從客戶端上傳一個文件。我必須獲取完整的客戶端路徑。例如,這是可能獲得完整的客戶端路徑在<asp:FileUpload>按鈕?

假設用戶從本地計算機上傳文件「d:\ my files \ docs \ test」。 xml「。因此,現在我想獲得相同的路徑(」d:\ my files \ docs \ test.xml「)以進一步進行下一步操作。

我已經使用FileUpload1.PostedFile.FileName ...但它工作得很好用IE和而不是在Firefox ...

所以,你能幫助我這個Firefox和Chrome瀏覽器...

+2

我不相信你能做到這一點,由於隱私原因。我沒有一個消息來源支持,但(因此只是一個評論)。 – Chris

+0

客戶端計算機上的路徑沒有實際用途,那麼爲什麼要使用它? – Guffa

+0

@克里斯 - 亞瑟:對不起,可以...看到我更新的問題... – Saravanan

回答

2

良好來源:

http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx

結帳接近底部的 「文件上傳控件」 一節。報價:

此外,「上載文件時包含本地目錄路徑」 對於Internet區域,URLAction已設置爲「禁用」。這種變化 可以防止潛在的敏感本地文件系統信息泄漏到互聯網。例如,Internet Explorer 現在只提交文件名image.png,而不是提交 完整路徑C:\ users \ ericlaw \ documents \ secret \ image.png。

這表明它是可能的,如果該網站是信任(IE)/舊的瀏覽器

0

似乎有辦法做到這一點,但同時它看起來像它只會在你的機器上工作。這是解釋它的鏈接。

http://www.codingforums.com/showthread.php?t=72288

的問題時,因爲它被看作是一個惡意腳本試圖訪問不是其控制給用戶一個提示下信息。所以除非這是用於你的控制的機器或是信任你的用戶,否則它不是最好的想法。大多數看到安全風險警報的用戶將始終阻止他們。

1

不,這是不可能的。由於安全限制,瀏覽器不允許這樣做。

如果我可以從javascript中設置我想要的文件,黑客可能會從您的PC上獲取大量文件。

因此,asp.net或其他,在瀏覽器中獲取完整的客戶端路徑是不可能的。

+0

從javascript中設置文件並通過某種方法讀取完整路徑不是一回事。前者是一個比後者更大的安全風險 - 後者更多的是隱私問題而不是安全問題。 – Chris

1

http://www.ietf.org/rfc/rfc2184.txthttp://www.ietf.org/rfc/rfc2388.txt似乎是相關RFC討論這個。它們相當長,但歸結起來就是你確實得到了一個文件名,而不是一條路徑。

瀏覽器將遵循這些標準,所以通過標準的瀏覽器界面將無法獲得您想要的信息。

這使得其他技術如javascript,閃光,Silverlight的,等等

JavaScript並全部通過瀏覽器對象模型的工作,從而再次在默認情況下不會幫助。與玩文件系統有關的任何事情都被認爲是安全風險(你是否想要通過文件系統查看隨機頁面?)。

這是可能的,你可以創建自己的Flash或Sliverlight的上傳工具(或找到一個),讓您收集更豐富的信息,我不知道很多關於這些技術。儘管如此,我希望他們遵守有關訪問客戶端計算機的類似規則。

因此,這很可能跟着到處RFC和有精神說,不,你不能做到這一點。

你總是可以問一個路徑的用戶在文本框不過,如果它是很重要的,只是讓他們在複製它...

相關問題