2013-05-03 27 views
1

當我使用FileUpload瀏覽文件時,爲什麼我的文件路徑沒有任何內容? 我不想上傳文件,我只想得到一個文件的目錄(我使用的文件更新(XLSX文件)SQL數據庫)爲什麼我的文件路徑在ASP.net中使用FileUpload爲空?

<asp:FileUpload ID="FileUpload" runat="server" Height="24px" Style="position: static" Width="255px" /> 
<asp:Button ID="Uploadbtn" runat="server" OnClick="Uploadbtn_Click" Style="position: static" Text="Upload" Width="82px" /> 

代碼背後(測試是「」)上Uploadbtn_Click事件

string test = FileUpload.FileName; 
+1

你在該網頁上使用的UpdatePanel? – 2013-05-03 08:29:29

+0

你不能。爲了安全起見,瀏覽器不會發布完整文件的路徑。路徑只與客戶端計算機有關,一旦文件上傳到服務器,它就不再相關。解決方法是存儲在別處的完整路徑,然後檢索它的服務器上。您可以使用隱藏的文本框來存儲它,並在服務器上使用TextBox.Text來獲取它。如果你也喜歡。 – MMK 2013-05-03 08:33:54

+0

@MMK但是還有另一種方法來獲得瀏覽器屏幕,而不是我使用的FileUpload方式? – Ruan 2013-05-03 08:37:36

回答

1

正如你可以在MSDN(http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filename.aspx)讀取,文件名永遠不會包含該文件的目錄。

服務器上的軟件決不允許在客戶端計算機內窺視。

+0

哦,好吧,我明白了。因此,客戶必須在物理上載的文件,然後我就可以使用該文件更新數據庫?即使通過文件路徑發送,服務器也不能從客戶端獲取文件? – Ruan 2013-05-03 08:45:48

+1

這完全正確!當然,本地netwerk內,有辦法,你可以修改你的網絡內部自己securty,但這不是一個網站應該如何工作。 – 2013-05-03 08:52:16

+0

哦,很酷,謝謝 – Ruan 2013-05-03 08:53:36

0

對於這個問題的回答是,我們沒有機會得到,因爲一些安全原因,瀏覽器FileUpload控件上載的文件的完整路徑,從客戶機返回僅文件名,而不是完整的文件路徑。
如果你想從客戶機FileUpload控件上傳文件的完整路徑,我們需要這個文件保存在我們的應用程序文件夾,從我們可以得到這樣如下圖所示

代碼文件的路徑:

string filename = Path.GetFileName(fileUpload.PostedFile.FileName); 
fileUpload.SaveAs(Server.MapPath("Files/"+filename)); 
string filepath = "Files/"+filename; 

希望你能理解..

相關問題