FileUploader.Has File在.net 4.0中总是返回false
本文关键字:返回 false Has File net FileUploader | 更新日期: 2023-09-27 18:01:09
我一直在努力寻找答案,但我找不到任何有效的解决方案。
MultipleFileUploader.ascx:
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
</asp:ScriptManagerProxy>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:FileUpload ID="FileUpload1" runat="server"
multiple="multiple" onchange="__doPostBack('<%= UpdatePanel1.ClientID %>', ''); type="file" />
</ContentTemplate>
</asp:UpdatePanel>
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
onAttach();
}
当用户使用Postback __doPostBack选择文件时,它会上传文件这不应该是浏览器的问题,因为我在chrome firefox和IE上遇到了同样的问题。在我们升级到.net 4.0之前,代码一直运行良好,由于某种原因,它的FileUploader.HasFile总是返回false。
我试过:
Page.Form.Attributes.Add("enctype", "multipart/form-data");
和:
<Triggers>
<asp:PostBackTrigger ControlID="btnUploadFile" />
</Triggers>
我是不是错过了一些简单的东西?我们非常感谢您提供的任何帮助。非常感谢。
您是否像一样将触发器放置在<update panel>
内
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="btnUploadFile" />
</Triggers>
<rest of the code>
</asp:UpdatePanel>
摘自这篇文章FileUpload.has文件总是假的
如果它仍然不起作用,那么尝试将FileUpload控件放置在UpdatePanel
之外,看看它是否起作用。推理:不应该在UpdatePanel
中放置FileUpload
控件,因为UpdatePanel
会向服务器发送AJAX请求。
请确保运行web应用程序所使用的凭据可以访问该文件。换句话说,CCD_ 6。
也可以像一样使用FileUpload
控件FileName
属性
if (FileUpload1.FileName != string.Empty)