Asp.net中的异步文件上传

时间:2014-04-14 18:41:16

标签: asp.net .net ajax asp.net-ajax

我知道有很多code的示例和示例要上传文件asynchronously,但遗憾的是没有人为我工作。

我放置了更新面板,但File Uploader无法在update panel中使用。 我在页面上有4个文本字段和一个file uploader。我想保存所有信息,并希望上传文件而不需要任何postback

我看到了AjaxFileUpload对ajax控件工具包的控制,但是当我们选择它时它会立即上传文件。但我想点击按钮上传文件。

请让我知道任何人都有解决方案。

由于

2 个答案:

答案 0 :(得分:1)

您提到的可以使用的AjaxFileUpload的Ajax控件工具包。是的,它可以连接到一个按钮,如我链接到的页面所示。请使用它,然后让我们具体了解您遇到的问题。

答案 1 :(得分:0)

我遇到了同样的问题。我在网上看到的所有例子对我都不起作用。在删除代码之后,我认为我必须使用ToolKitScriptManager而不是标准asp:ScriptManager
我以前没有使用过这个工具包所以我不知道这是否是最新工具包的新要求,因为我读过的所有旧例子都使用了ScriptManager并说它应该可以正常工作。 / p>

以下是点击按钮保存的代码:

protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
    AjaxControlToolkit.AsyncFileUpload afu = (AjaxControlToolkit.AsyncFileUpload)sender;

    if (afu.HasFile)
    {
        Session["AsyncFileUploadImage"] = afu;
    }

}
protected void AsyncFileUpload1_UploadedFileError(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
    ...
}
protected void btnSave_Click(object sender, EventArgs e)
{       
    if (Session["AsyncFileUploadImage"] != null)
    {
        this.AsyncFileUpload1 = (AjaxControlToolkit.AsyncFileUpload)Session["AsyncFileUploadImage"];
        this.AsyncFileUpload1.SaveAs(Path.Combine(Request.PhysicalApplicationPath,"images", "uploads", this.AsyncFileUpload1.FileName)); //make sure to save in directory with write permissions
        this.lblStatus.Text = "You uploaded " + AsyncFileUpload1.FileName;
    }
    else
    {
      ...
    }


}