我正在使用AJAX控件工具包中的asyncFileUpload控件。我可以在后面的代码中对它进行类型转换并访问它,但它似乎没有抓取文件。这是它嵌套在页面中的方式:
<asp:LoginView ID="LoginView1" runat="server">
<AnonymousTemplate>
</AnonymousTemplate>
<LoggedInTemplate>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Repeater ID="rpt_items_loggedin" runat="server">
<ItemTemplate>
</ItemTemplate>
</asp:Repeater>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btn_addwish" EventName="click" />
</Triggers>
</asp:UpdatePanel>
<div class="wenslijst_preview">
<div class="fourfifth">
<table>
<tr>
<td>
<asp:Label ID="lbl_img" runat="server" Text="Upload een afbeelding:" AssociatedControlID="fu_img_upload"></asp:Label>
</td>
<td>
<asp:AsyncFileUpload ID="asfu_img" runat="server" UploaderStyle="Traditional" />
</td>
</tr>
</table>
</div>
<div class="fifth">
<asp:ImageButton ID="btn_addwish" runat="server" CssClass="icon_img"
ImageUrl="images/add.png" onclick="btn_addwish_Click"/>
</div>
</div>
</LoggedInTemplate>
</asp:LoginView>
这就是我在代码背后的处理方式。当我调试时,我看到AsyncFileUpload控件没有得到任何数据:
protected void btn_addwish_Click(object sender, ImageClickEventArgs e)
{
AjaxControlToolkit.AsyncFileUpload f = new AjaxControlToolkit.AsyncFileUpload();
f = (AjaxControlToolkit.AsyncFileUpload)(this.LoginView1.FindControl("asfu_img"));
Label l = new Label();
l = (Label)(this.LoginView1.FindControl("lbl_img_feedback"));
string filePath = "";
if (f.HasFile)
{
try
{
string fileName = DateTime.UtcNow.Ticks + "_" + cId;
filePath = "images/userimg/" + fileName;
f.SaveAs(Server.MapPath(filePath));
l.Text = filePath;
}
catch (Exception ex)
{
l.Text = "Deze foto kon niet worden geuploaded. " + ex.Message;
}
}
}
告诉我您是否需要查看更多代码或信息!
答案 0 :(得分:1)
在我看来,btn_addwish是你想要用来上传文件的按钮,如果是这种情况那么你的问题是当执行f.Hasfile时上传还没有完成,因此,它没有文件。尝试使用UploadedComplete事件或以某种方式使用另一个控件来检查hasfile。
答案 1 :(得分:1)
确保没有异步加载带有asyncfileupload控件的usercontrol,例如通过Response.Redirect(“pageWithUploadControl”)。
您是否处理过FileUploadComplete事件并检查AsyncFileUploadState是否成功?
还尝试更改表单的enctype:
<form id="form1" enctype="multipart/form-data" runat="server">