2013-01-24 160 views
2

我想在asp.net中使用文件上傳功能來獲取文件的完整路徑。我正在使用Visual Basic 2010中的C#編寫網站項目。我想要完整路徑的原因是因爲我實際上試圖獲取包含該文件的文件夾的信息,因爲該計劃將比較內容兩個文件夾使用第三方比較工具UltraCompare,然後將比較結果傳輸到我們的數據庫中。如何從asp:file upload獲取文件的完整路徑?

理想情況下,我想要一個功能,使用戶瀏覽文件夾而不是文件,但據我所知道的谷歌搜索,這是不可能的。NET 4.0,這是版本我在用着。

我不確定是否甚至有必要使用文件上傳控件,因爲我需要的只是目錄的文件路徑。不過,我希望能讓用戶使用GUI瀏覽器窗口來搜索文件,而不是輸入完整的文件路徑。

我明顯是C#.net和一般編程的一個巨大的noob,所以任何意見或建議將不勝感激。以下是我從其他地方複製並粘貼的示例代碼。評論中的東西只是我嘗試(不成功)獲取文件路徑的不同方法。

if (File1.HasFile) 
     { 
      try 
      { 
       //string filepath1 = Path.GetFullPath(File1.PostedFile.FileName); 
       string filepath1 = Path.GetFileName(File1.FileName); 
       File1.SaveAs(Server.MapPath("~/") + filepath1); 
       //StatusLabel.Text = "Upload status: File(s) uploaded!"; 
       Response.Write("Upload status: File(s) uploaded! <br />"); 
       Response.Write(filepath1); 
      } 
      catch (Exception ex) 
      { 
       StatusLabel.Text = "Upload status: The file(s) could not be uploaded. The following error occured: " + ex.Message; 
       //Response.Write("Upload status: The file(s) could not be uploaded. The following error occured: " + ex.Message + "<br />"); 
      } 
+1

所以,很明顯,你有一個網頁,其中有一個控件。 但是,除了獲取文件本身,您想要獲取用戶計算機上存在的文件夾嗎? –

+0

http://weblogs.asp.net/ashicmahtab/archive/2009/05/20/fileupload-control-doesn-t-give-full-path-help.aspx(同時IE也學會了,仍然值得閱讀) –

+0

@ mori57實際上它看起來像這樣:但是這就是我想要做的 – user1985189

回答

4

html不會給你任何東西以外的原始文件名。任何其他信息(如文件夾路徑或屬性)都將違反客戶的安全和隱私。你需要使用其他的東西,比如一個ActiveX控件或Adobe Flash來獲取你之後的數據。

+3

我不認爲Flash會給你一個文件的目錄內容,但是因爲我試圖編程這個beastie已經有一段時間了。儘管如此,這也是我在上面提到的一點,...由於安全沙箱,不允許使用普通的舊HTML和Javascript進行比較,從用戶的計算機(客戶端)到服務器。 –

+0

@ mori57:我對Flash也不確定。自從我研究它的能力已經很長時間了。 –

+0

在這種情況下,是否沒有直接上傳或選擇文件夾的方法?看起來很荒謬,因爲文件夾也是技術上的文件,所以不會有某種類型的文件夾上傳控制! – user1985189

相關問題