2013-03-12 100 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的建议帮助了我。

相关问题