FileUpload.HasFile returns "False" 多个文件上传 - ASP.net
FileUpload.HasFile returns "False" for multiple files upload - ASP.net
我正在使用 ASP.net FileUpload 控件上传数据库中的多个文件。
<asp:UpdatePanel ID="UP_div_askQ" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:FileUpload ID="FUQuestionFiles" CssClass="form-control" AllowMultiple="true" runat="server" />
<asp:Button ID="btnQSave" runat="server" CssClass="btn btn-success" Text="ASK QUESTION" OnClick="askQuestion" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnQSave" />
</Triggers>
</asp:UpdatePanel>
在后面的代码中,我使用 HasFile
检查文件是否存在。
log.Debug("there are file" + FUQuestionFiles.HasFile.ToString());
,但是HasFile
returns选择多个文件时。
注意:如果只选择一个文件,则returns正确。
感谢您的帮助。
FileUpload 有两个不同的属性用于检查 a/any 文件是否已上传:
FileUpload.HasFile:
Gets a value indicating whether the FileUpload control contains a
file.
FileUpload.HasFiles:
Gets a value that indicates whether any files have been uploaded.
检查是否有任何文件上传的最佳方法是同时检查 HasFile
和 HasFiles
。
if(fileUpload1.HasFile || fileUpload1.HasFiles)
// do some code!
编辑 1:
您是否尝试在 Page_Load
中添加以下行?
Page.Form.Attributes.Add("enctype", "multipart/form-data");
编辑 2:
Can you please explain what difference this line of code made?
来自这个 Forms in HTML documents W3C 草案:
The content type "application/x-www-form-urlencoded" is inefficient
for sending large quantities of binary data or text containing
non-ASCII characters. The content type "multipart/form-data" should be
used for submitting forms that contain files, non-ASCII data, and
binary data.
如果表单包含 file input
,则表单的 enctype
属性应设置为 multipart/form-data
。
我认为您遇到了这个问题,因为您将 FileUpload
放在 UpdatePanel
中。
我正在使用 ASP.net FileUpload 控件上传数据库中的多个文件。
<asp:UpdatePanel ID="UP_div_askQ" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:FileUpload ID="FUQuestionFiles" CssClass="form-control" AllowMultiple="true" runat="server" />
<asp:Button ID="btnQSave" runat="server" CssClass="btn btn-success" Text="ASK QUESTION" OnClick="askQuestion" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnQSave" />
</Triggers>
</asp:UpdatePanel>
在后面的代码中,我使用 HasFile
检查文件是否存在。
log.Debug("there are file" + FUQuestionFiles.HasFile.ToString());
,但是HasFile
returns选择多个文件时。
注意:如果只选择一个文件,则returns正确。
感谢您的帮助。
FileUpload 有两个不同的属性用于检查 a/any 文件是否已上传:
FileUpload.HasFile:
Gets a value indicating whether the FileUpload control contains a file.
FileUpload.HasFiles:
Gets a value that indicates whether any files have been uploaded.
检查是否有任何文件上传的最佳方法是同时检查 HasFile
和 HasFiles
。
if(fileUpload1.HasFile || fileUpload1.HasFiles)
// do some code!
编辑 1:
您是否尝试在 Page_Load
中添加以下行?
Page.Form.Attributes.Add("enctype", "multipart/form-data");
编辑 2:
Can you please explain what difference this line of code made?
来自这个 Forms in HTML documents W3C 草案:
The content type "application/x-www-form-urlencoded" is inefficient for sending large quantities of binary data or text containing non-ASCII characters. The content type "multipart/form-data" should be used for submitting forms that contain files, non-ASCII data, and binary data.
如果表单包含 file input
,则表单的 enctype
属性应设置为 multipart/form-data
。
我认为您遇到了这个问题,因为您将 FileUpload
放在 UpdatePanel
中。