#c# #asp.net
#c# #asp.net
Вопрос:
Я загружаю файл с помощью ASP.net Управление загрузкой файлов. Мой FileUpload1.HasFile всегда возвращает false.
if (FileUpload1.HasFile)
{
DBOperations db = new DBOperations();
try
{
FileUpload1.SaveAs(Server.MapPath("~/uploadedImages/" db.uploadImage(System.IO.Path.GetExtension(FileUpload1.FileName)) System.IO.Path.GetExtension(FileUpload1.FileName)));
}
catch (Exception Ex)
{
String he = Ex.Message;
}
}
Я использую следующее ASP.net Код
<asp:UpdatePanel ID="fileUpload" runat="server">
<ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnUploadFile" EventName="Click" />
</Triggers>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUploadFile" Text="Upload File" runat="server"
onclick="btnUploadFile_Click" />
<br />
<asp:RegularExpressionValidator ID="revImage" ControlToValidate="FileUpload1" ValidationExpression="^.*.((j|J)(p|P)(e|E)?(g|G)|(g|G)(i|I)(f|F)|(p|P)(n|N)(g|G))$" Text="Invalid image type" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
Я пытался даже путем удаления AsyncPostBackTrigger и даже путем удаления всего asp: UpdatePanel, тогда и мой FileUpload1.HasFile всегда возвращает false.
Комментарии:
1. Когда вы удаляете
UpdatePanel
, как вы отправляете свою форму?
Ответ №1:
ASP.NET «AJAX» не поддерживает загрузку файлов в UpdatePanels из коробки. Измените этот триггер на PostBackTrigger
(который вызывает полную загрузку страницы) или используйте что-то другое для загрузки файла.
Комментарии:
1. должен ли я использовать что-то такого типа asp.net/ajax/ajaxcontroltoolkit/samples/asyncfileupload /…
2. @Adam: Это один из примеров того, что вы могли бы использовать, да.
Ответ №2:
Добавьте триггер для вашей панели обновления
<Triggers>
<asp:PostBackTrigger ControlID="btnUploadFile" />
</Triggers>
Это приведет к принудительной отправке при нажатии кнопки загрузки.
Также добавьте строку ниже в Page_Load
Page.Form.Attributes.Add("enctype", "multipart/form-data");
Ответ №3:
Я знаю, что это сообщение старое, но я обнаружил, что если файл пуст [0 КБ], то он также вернет false. В файле должно быть что-то для .Есть файл, подтверждающий это.