在.net上传图片上传时获取空路径

时间:2010-10-18 14:21:14

标签: asp.net file-upload updatepanel

我已经使用了asp.net的文件上传控件但是我在保存时遇到空字符串。我的代码 -

<asp:FileUpload ID="fuProductLogo" runat="server" CssClass="file paddBottom5px"  />

.cs代码是 -

if (fuProductLogo.PostedFile != null && fuProductLogo.PostedFile.ContentLength > 0)
                {
...
}

但.PstedFile和.CountLength为零,但相同的代码在另一个页面中正常工作。请帮助。

2 个答案:

答案 0 :(得分:1)

这里有几件事要检查:

  • 正如@williem所说,如果你正在使用它,请从表单中删除updatepanel
  • 在表单标记
  • 中添加enctype="application/x-www-form-urlencoded"

请务必在代码修改和检查后更新您的帖子。

答案 1 :(得分:0)

如果FileUpload位于UpdatePanel中,则会在每个ajax-postback上清除它。您可以在FileUpload控件周围使用多个UpdatePanel,并保留FileUpload。还要确保触发实际上传的按钮执行真正的回发,而不是asyncpostback。通过将按钮添加到其UpdatePanel的PostbackTrigger或将其从UpdatePanel中取出来执行此操作。

<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
    <ContentTemplate>
        <asp:TextBox ID="TextBox2" runat="server" />
        <asp:Button ID="Submit" runat="server" Text="Submit" />
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="Submit" />
    </Triggers>
</asp:UpdatePanel>  

你也可以使用Asp.net Ajax Toolkit中的AsyncFileUpload控件,它可以在UpdatePanel中运行,但要让它工作起来有点困难。