2009-11-16 54 views
0

我想從客戶端獲取提交上傳的文件 的完整路徑。需要來自'源'計算機的完全限定路徑

我想是這樣的:

C://this/is/your/file.jpg

但是,當我嘗試:

m_File = Request.Files[i]; 
m_File.FileName 

我得到「只是「文件名。

而且,當我嘗試:

System.IO.Path.GetFileName(m_File.FileName) 

我得到的似乎指向我的IDE的路徑:

C:\ Program Files文件\微軟的Visual Studio 9.0 \ Common7 \ IDE \ PICT0736。 JPG

我使用的服務器上的HttpPostedFile收集和 類型=文件隱藏的輸入(經由IFRAME通過)要發佈 文件集合。

理想情況下,我想每個輸入有值=「C://path/to/file.gif」

如果你不認爲這是可能的,或風格上的聲音,我會很感激 替代建議(特別讚賞代碼示例)。

感謝您的努力。 :)

+0

你的用例是什麼?這是一個圖庫? – 2009-11-17 14:37:58

+0

是的,確切地說。它的多文件圖片上傳 - 最多可以上傳11個圖片。 – 2009-11-17 17:06:48

回答

0

據我所知,當發送一個HTTP POST的文件時,你只發送文件的內容,其中不包括文件系統元數據,如文件路徑。我可以看到解決這個問題的唯一方法就是將元數據包含在POST中。也許在表單上使用一些javascript和一個隱藏的輸入字段來捕獲提供的文件路徑並根據提供的路徑更新它?

+0

啊,這是個好主意。我可以做到。這種方法應該是安全問題嗎? – 2009-11-16 20:12:36

+1

以這種方式提供這些信息也是一個安全漏洞,如果有瀏覽器這樣做,它應該被修復。 – 2009-11-16 20:33:06

+0

網上有很多表單,其中輸入顯示要上傳文件的完整文件路徑,並且可以在所有瀏覽器上運行。是否允許瀏覽器允許「瀏覽...」對話框被修復?當然,在上傳文件時,總有人可能會插入一條虛擬路徑。 – llamaoo7 2009-11-16 20:52:59

3

瀏覽器通常不會爲您提供完全合格的路徑,以避免向Web服務器發送可能敏感的信息。

+0

謝謝亞當。有關如何解決這個問題的任何建議?再次感謝。 – 2009-11-17 05:35:10