2013-03-12 63 views
2

我試圖在互聯網上搜索問題,我發現每個人都在問UpdatePanel內的FileUpload控件的問題。首先,我沒有使用UpdatePanel。下面是我的代碼:FileUpload1.HasFile爲False

HTML

<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" method="post" runat="server" enctype="multipart/form-data"> 
    <div> 
     <asp:FileUpload ID="fuImport" runat="server" /> 
     <asp:Button ID="btnImport" runat="server" Text="Import" /> 
    </div> 
    </form> 
</body> 
</html> 

代碼隱藏

Protected Sub btnImport_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnImport.Click 
    If (fuImport.HasFile) Then 
     fuImport.SaveAs(My.Settings.FileImportPath & Path.GetFileName(fuImport.FileName)) 
    End If 
End Sub 

我看到fuImport.HasFile是假的,但fuImport.FileName只給出文件名。例如,如果我選擇c:\1.txt,它只給出"1.txt"。 任何人都可以讓我知道爲什麼fuImport.HasFile是假的,雖然我選擇了一個文件?

+0

這很奇怪。我正在給你一個關於這個問題的+1。它應該肯定返回True,根據這裏的文檔:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.hasfile.aspx – Icarus 2013-03-12 15:19:33

+0

爲什麼要FileUpload.Filename返回絕對文件名(「C:\ 1.txt」)?這是文件在客戶端瀏覽器的位置,而不是服務器上的文件? – mortb 2013-03-12 15:20:35

+0

@mortb問題不在於他得到「1.txt」而不是「c:\ 1.txt」。這一點非常重要。重要的是'HasFile'應該肯定會返回true。 – Icarus 2013-03-12 15:23:46

回答

5

我找到了答案。我上傳的txt文件是空的。我編輯了文本文件,然後通過鍵入內容進行保存。我在msdn中提到的任何地方都找不到,或者我不確定我是否在看錯地方。卡西斯在this post的建議幫助了我。

相關問題