C# Ajax AsyncFileUpload上载控制多次上载文件

C# Ajax AsyncFileUpload上载控制多次上载文件,c#,asp.net,asp.net-ajax,c#-3.0,asyncfileupload,C#,Asp.net,Asp.net Ajax,C# 3.0,Asyncfileupload,我一整天都在努力解决这个问题,到目前为止,我一点运气都没有。我有一个Web表单,它有一些asp.net表单控件和两个AsyncFileUpload控件。当我使用第一个AsyncFileUpload1上载图像时,它只上载一个图像;当我使用AsyncFileUpload2上载第二个图像时,它上载同一图像的两个版本 当我点击Save按钮保存数据,然后上传3个或更多版本的图片时,事情变得疯狂起来。我尝试了不同的方法,最终放弃了 HTML文件中的示例代码 <script type = "t

我一整天都在努力解决这个问题,到目前为止,我一点运气都没有。我有一个Web表单,它有一些asp.net表单控件和两个AsyncFileUpload控件。当我使用第一个AsyncFileUpload1上载图像时,它只上载一个图像;当我使用AsyncFileUpload2上载第二个图像时,它上载同一图像的两个版本

当我点击Save按钮保存数据,然后上传3个或更多版本的图片时,事情变得疯狂起来。我尝试了不同的方法,最终放弃了

HTML文件中的示例代码

     <script type = "text/javascript">
         function uploadComplete(sender) {
             // $get("<%=lblImageUploadMessage1.ClientID%>").innerHTML = "File Uploaded Successfully";
             // $get("<%=lblImageUploadMessage2.ClientID%>").innerHTML = "File Uploaded Successfully";
             clearContents();
             clearContents2();

         }
         function uploadError(sender) {
             // $get("<%=lblImageUploadMessage1.ClientID%>").innerHTML = "File upload failed. only Image files are allowed";
             // $get("<%=lblImageUploadMessage2.ClientID%>").innerHTML = "File upload failed. only Image files are allowed";
             clearContents();
         }
</script>
<script type = "text/javascript">
    function clearContents() {
        var span = $get("<%=AsyncFileUpload1.ClientID%>");
        var txts = span.getElementsByTagName("input");
        for (var i = 0; i < txts.length; i++) {
            if (txts[i].type == "text") {
                txts[i].value = "";
            }
        }
    }
    function clearContents2() {
        var span = $get("<%=AsyncFileUpload2.ClientID%>");
        var txts = span.getElementsByTagName("input");
        for (var i = 0; i < txts.length; i++) {
            if (txts[i].type == "text") {
                txts[i].value = "";
            }
        }
    }

    window.onload = clearContents;
</script>   

       <div class="row">
            <asp:Label ID="lblPageTitleE" CssClass="txtLabel" runat="server" Text="Page Title (E) :"></asp:Label>
            <asp:TextBox ID="txtPageTitleE" runat="server" CssClass="txtbox700"></asp:TextBox>
            <asp:RequiredFieldValidator ID="RFVPageTitleE" runat="server" ErrorMessage="*" 
                ControlToValidate="txtPageTitleE" ValidationGroup="atpAddNewPage"  CssClass="validation"></asp:RequiredFieldValidator>
       </div>
       <div class="row">
            <asp:Label ID="lblPageTitleA" CssClass="txtLabel" runat="server" Text="Page Title (A) :"></asp:Label>
            <asp:TextBox ID="txtPageTitleA" runat="server" CssClass="txtbox700"></asp:TextBox>
            <asp:RequiredFieldValidator ID="RFVPageTitleA" runat="server" ErrorMessage="*" 
                ControlToValidate="txtPageTitleA" ValidationGroup="atpAddNewPage"  CssClass="validation"></asp:RequiredFieldValidator>
       </div>

  <!-- Image Control --> 
           <div class="row">
                <asp:Label ID="lblBannerImageE" CssClass="txtLabel" runat="server" Text="Banner Image (E) :"></asp:Label>
    <asp:AsyncFileUpload  OnClientUploadError="uploadError" OnClientUploadComplete="uploadComplete"
    runat="server" ID="AsyncFileUpload1"  UploaderStyle="Modern" CompleteBackColor="White"
    UploadingBackColor="#336699" ThrobberID="imgLoader" OnUploadedComplete="AsyncFileUpload1_UploadedComplete" CssClass="AFU2" Width="400px" />

                <asp:Label ID="lblImageUploadMessage1" CssClass="imgLabel" runat="server" Text=""></asp:Label>
                <asp:Image ID="imgLoader" runat="server" ImageUrl="~/images/ajax-loader-small.gif" />
           </div>
           <div class="row">
                <asp:Label ID="lblBannerImageA" CssClass="txtLabel" runat="server" Text="Banner Image (A) :"></asp:Label>
                <asp:AsyncFileUpload  OnClientUploadError="uploadError" OnClientUploadComplete="uploadComplete"
                runat="server" ID="AsyncFileUpload2"  UploaderStyle="Modern" CompleteBackColor="White"
                UploadingBackColor="#336699" ThrobberID="imgLoader2" OnUploadedComplete="AsyncFileUpload2_UploadedComplete" CssClass="AFU2" Width="400px" />
                <asp:Label ID="lblImageUploadMessage2" CssClass="imgLabel" runat="server" Text=""></asp:Label>
                <asp:Image ID="imgLoader2" runat="server" ImageUrl="~/images/ajax-loader-small.gif" />
           </div>
  <!-- Image Control --> 

函数上传完成(发送方){
//$get(“”.innerHTML=“文件上载成功”;
//$get(“”.innerHTML=“文件上载成功”;
clearContents();
clearContents2();
}
函数上载错误(发送方){
//$get(“”.innerHTML=“文件上载失败。只允许图像文件”;
//$get(“”.innerHTML=“文件上载失败。只允许图像文件”;
clearContents();
}
函数clearContents(){
var span=$get(“”);
var txts=span.getElementsByTagName(“输入”);
对于(变量i=0;i
下面是.CS文件的示例代码

在这个文件中,我使用GUID和image upload AsyncFileUpload为每个图像指定了唯一的名称。文件上载代码被执行了多次,我不知道我现在是多么困惑

public partial class _Default : System.Web.UI.Page
{
    String BannerImageNameEn, BannerImageNameAr;



    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //Session["BannerImageNameEn"] = "Null";
            //Session["BannerImageNameEn"] = "Null";
        }

    }

    protected void btnCreatePage_Click(object sender, EventArgs e)
    {
        BusinessLogic objBLAddNewPage = new BusinessLogic();

        Pages objPages = new Pages();

        objPages.PageNameEn = txtPageNameE.Text;
        objPages.PageNameAr = txtPageNameA.Text;
        objPages.PageTitleEn = txtPageTitleE.Text;
        objPages.PageTitleAr = txtPageTitleA.Text;
        objPages.PageDescEn = txtPageDescE.Text;
        objPages.PageDescAr = txtPageDescA.Text;
        objPages.PageKeywordEn = txtPageKeywordsE.Text;
        objPages.PageKeywordAr = txtPageKeywordsA.Text;
        objPages.PageBodyEn = CKEditorPageBodyE.Text;
        objPages.PageBodyAr = CKEditorPageBodyA.Text;
        objPages.PageLinkPositionNo = int.Parse(txtPageLinkPosition.Text);
        objPages.PageLayoutPosition = ddPageLayoutPosition.SelectedItem.Value.ToString();


        // Assign Name to Images 
        objPages.PageBannerImageEn = Session["BannerImageNameEn"].ToString();
        objPages.PageBannerImageAr = Session["BannerImageNameAr"].ToString();

        objPages.PageBannerLinkEn = txtBannerLinkEnglish.Text;
        objPages.PageBannerLinkAr = txtBannerLinkArabic.Text;

        objPages.PageWindow = ddPageWindow.SelectedItem.Value.ToString();
        objPages.PageActive = bool.Parse(ddPageActive.SelectedItem.Value.ToString());
        objPages.PageVisible = bool.Parse(ddPageHidden.SelectedItem.Value.ToString());

        objPages.PageCreateDate = Helper.GetUAEDateTime();
        objPages.PageUpdateDate = Helper.GetUAEDateTime();
        objPages.PageIPAddress = Request.ServerVariables["REMOTE_ADDR"];

        try
        {

            bool result;
            //result = objBLAddNewPage.CreateNewPage(objPages);
            result = false;

            if (result == true)
            {
                Response.Redirect("PageCreated.aspx");
            }
            else
            {

            }


        }
        catch (Exception ex)
        {
            //lblresult.Text = ex.ToString();
        }

    }

    protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
    {
        try
        {
            String filePath = string.Empty;
            String CurrentGUID = Guid.NewGuid().ToString();

            if (AsyncFileUpload1.HasFile)
            {
                string filename = System.IO.Path.GetFileName(AsyncFileUpload1.FileName);
                System.IO.FileInfo f = new System.IO.FileInfo(AsyncFileUpload1.PostedFile.FileName);
                int fileSize = Int32.Parse(System.IO.Path.GetFileName(e.FileSize));
                if (fileSize < 1024000) // 1 MB current size size in bytes 102400=100kb  512000 = 500kb
                {
                    if ((f.Extension.ToLower() == ".jpg") || (f.Extension.ToLower() == ".png") || (f.Extension.ToLower() == ".gif") || (f.Extension.ToLower() == ".jpeg"))
                    {

                        filename = CurrentGUID + f.Extension;
                        //string productGUID 
                        filePath = Server.MapPath("../ImageUploads/") + filename;
                        if (System.IO.File.Exists(filePath))
                        {
                            return;
                        }
                        else
                        {
                            //Upload files
                            AsyncFileUpload1.PostedFile.SaveAs(Server.MapPath("../ImageUploads/") + filename);


                 Session["BannerImageNameEn"] = filename.ToString();
                        string errMsg = "File Uploaded Successfully";

                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "size", "top.$get(\"" + lblImageUploadMessage1.ClientID + "\").innerHTML='" + errMsg + "';", true);
                        // ResizeImage(string OriginalFile, string NewFile, int NewWidth, int MaxHeight, bool OnlyResizeIfWider)
                        Helper.ResizeImage(filePath, filePath, 150, 80, true);

                    }
                    return;
                }

            }
            else
            {
                lblImageUploadMessage1.Text = "Only type .jpg, .png, .gif are allow";
                string errMsg = "File must be an Image type of .jpg, .png, .gif, .jpeg";
                //client-side error
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "size", "top.$get(\"" + lblImageUploadMessage1.ClientID + "\").innerHTML='" + errMsg + "';", true);
                return;
            }
        }
        else
        {
            //lblMesg.Text = "Only type .jpg, .png, .gif are allow";
            string errMsg = "File size is greater the 1MB";
            //client-side error
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "size", "top.$get(\"" + lblImageUploadMessage1.ClientID + "\").innerHTML='" + errMsg + "';", true);
            return;
        }
    }
    catch (Exception ex)
    {
    }
}

protected void AsyncFileUpload2_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
    try
    {
        String filePath = string.Empty;
        String CurrentGUID = Guid.NewGuid().ToString();
        if (AsyncFileUpload1.HasFile)
        {
            string filename = System.IO.Path.GetFileName(AsyncFileUpload1.FileName);
            System.IO.FileInfo f = new System.IO.FileInfo(AsyncFileUpload1.PostedFile.FileName);
            int fileSize = Int32.Parse(System.IO.Path.GetFileName(e.FileSize));
            if (fileSize < 1024000) // 1 MB current size size in bytes 102400=100kb  512000 = 500kb
            {
                if ((f.Extension.ToLower() == ".jpg") || (f.Extension.ToLower() == ".png") || (f.Extension.ToLower() == ".gif") || (f.Extension.ToLower() == ".jpeg"))
                {
                    filename = CurrentGUID + f.Extension;
                    //string productGUID 
                    filePath = Server.MapPath("../ImageUploads/") + filename;
                    if (System.IO.File.Exists(filePath))
                    {
                        return;
                    }
                    else
                    {
                        //Upload files
                        AsyncFileUpload2.PostedFile.SaveAs(Server.MapPath("../ImageUploads/") + filename);
                        Session["BannerImageNameAr"] = filename.ToString();
                        string errMsg = "File Uploaded Successfully";

                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "size", "top.$get(\"" + lblImageUploadMessage2.ClientID + "\").innerHTML='" + errMsg + "';", true);
                        // ResizeImage(string OriginalFile, string NewFile, int NewWidth, int MaxHeight, bool OnlyResizeIfWider)
                        Helper.ResizeImage(filePath, filePath, 150, 80, true);
                    }
                    return;
                }
            }
            else
            {
                lblImageUploadMessage1.Text = "Only type .jpg, .png, .gif are allow";
                string errMsg = "File must be an Image type of .jpg, .png, .gif, .jpeg";
                //client-side error
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "size", "top.$get(\"" + lblImageUploadMessage2.ClientID + "\").innerHTML='" + errMsg + "';", true);
                return;
            }
        }
        else
        {
            //lblMesg.Text = "Only type .jpg, .png, .gif are allow";
            string errMsg = "File size is greater the 1MB";
            //client-side error
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "size", "top.$get(\"" + lblImageUploadMessage2.ClientID + "\").innerHTML='" + errMsg + "';", true);
            return;
        }
    }
    catch (Exception ex)
    {
    }
}
public分部类\u默认值:System.Web.UI.Page
{
字符串bannerimagename,bannerimagename;
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
//会话[“BannerImageNameEn”]=“空”;
//会话[“BannerImageNameEn”]=“空”;
}
}
受保护的无效BTN创建页面\单击(对象发送者,事件参数e)
{
BusinessLogic objBLAddNewPage=新的BusinessLogic();
Pages objPages=新页面();
objPages.PageNameEn=txtPageNameE.Text;
objPages.PageNameAr=txtPageNameA.Text;
objPages.PageTitleEn=txtPageTitleE.Text;
objPages.PageTitleAr=txtPageTitleA.Text;
objPages.PageDescEn=txtPageDescE.Text;
objPages.PageDescAr=txtPageDescA.Text;
objPages.PageKeywordEn=txtPageKeywordsE.Text;
objPages.PageKeywordAr=txtPageKeywordsA.Text;
objPages.PageBodyEn=CKEditorPageBodyE.Text;
objPages.PageBodyAr=CKEditorPageBodyA.Text;
objPages.PageLinkPositionNo=int.Parse(txtPageLinkPosition.Text);
objPages.PageLayoutPosition=ddPageLayoutPosition.SelectedItem.Value.ToString();
//为图像指定名称
objPages.PageBannerImageEn=会话[“bannerimageen”].ToString();
objPages.PageBannerImageAr=会话[“bannerimagear”].ToString();
objPages.PageBannerLinkEn=txtbanerlinklish.Text;
objPages.PageBannerLinkAr=txtBannerLinkArabic.Text;
objPages.PageWindow=ddPageWindow.SelectedItem.Value.ToString();
objPages.PageActive=bool.Parse(ddPageActive.SelectedItem.Value.ToString());
objPages.PageVisible=bool.Parse(ddPageHidden.SelectedItem.Value.ToString());
objPages.PageCreateDate=Helper.GetUAEDateTime();
objPages.PageUpdateDate=Helper.GetUAEDateTime();
objPages.PageIPAddress=Request.ServerVariables[“REMOTE_ADDR”];
尝试
{
布尔结果;
//结果=objBLAddNewPage.CreateNewPage(objPages);
结果=假;
如果(结果==真)
{
重定向(“PageCreated.aspx”);
}
其他的
{
}
}
捕获(例外情况除外)
{
//lblresult.Text=ex.ToString();
}
}
受保护的void AsyncFileUpload1\u UploadedComplete(对象发送方,AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
尝试
{
String filePath=String.Empty;
字符串CurrentGUID=Guid.NewGuid().ToString();
if(AsyncFileUpload1.HasFile)
{
字符串filename=System.IO.Path.GetFileName(AsyncFileUpload1.filename);
System.IO.FileInfo f=new System.IO.FileInfo(AsyncFileUpload1.PostedFile.FileName);
int fileSize=Int32.Parse(System.IO.Path.GetFileName(e.fileSize));
if(fileSize<1024000)//1 MB当前大小字节102400=100kb 512000=500kb
{
如果((f.Extension.ToLower()=“.jpg”)| |(f.Extension.ToLower()=“.png”)| |(f.Extension.ToLower()=”.gif”)| |(f.Extension.ToLower()=“.jpeg”))
{
filename=CurrentGUID+f.扩展名;
//字符串productGUID
filePath=Server.MapPath(“../ImageUploads/”)+文件名;
if(System.IO.File.Exists(filePath))
{
返回;
}
其他的
{
//上传文件
AsyncFileUpload1.Post