【问题标题】:File uploading in update panel still refreshing更新面板中的文件上传仍在刷新
【发布时间】:2016-12-10 05:48:30
【问题描述】:

我在互联网上搜索以使用更新面板中的上传文件。 当我点击文件上传时,我想避免页面刷新。 所以我用触发器把我的代码放在更新面板中 但仍然令人耳目一新...

代码:

<asp:ScriptManager runat="server" ID="ScriptManager1" EnablePartialRendering="true"></asp:ScriptManager>
                <asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional" ChildrenAsTriggers="true">
                    <Triggers>
                        <asp:PostBackTrigger ControlID="imageUploadAction" />
                    </Triggers>
                    <ContentTemplate>
                        <div class="fileUpload btn btn-primary btn-block btn-lg">
                            <span>آپلود</span>
                            <asp:FileUpload CssClass="inputfile" runat="server" ID="imageUpload" />
                        </div>
                        <br />
                        <div class="alert alert-info" runat="server" id="imageAlert"></div>
                        <div style="border-bottom: 1px solid #ddd;"></div>
                        <br />
                        <asp:Button runat="server" ID="imageUploadAction" CssClass="btn btn-block btn-lg btn-success" Text="ارسال" OnClick="imageUploadAction_Click" />
                    </ContentTemplate>
                </asp:UpdatePanel>

代码后面:

protected void imageUploadAction_Click(object sender, EventArgs e)
{
    Debug.WriteLine("Uploading" + " " + imageUpload.HasFile);
    Boolean fileOK = false;
    String path = Server.MapPath("~/Assets/image/posts/");
    if (imageUpload.HasFile)
    {
        String fileExtension = System.IO.Path.GetExtension(imageUpload.FileName).ToLower();
        String[] allowedExtensions = { ".jpg", ".png" };
        for (int i = 0; i < allowedExtensions.Length; i++)
            if (fileExtension == allowedExtensions[i])
                fileOK = true;
    }

    if (fileOK)
    {
        try
        {
            int last = getLastImage() + 1;
            string link = path + last + ".jpg";
            imageUpload.PostedFile.SaveAs(link);
            db.insertPhoto(link);
            imageAlert.InnerText = "فایل آپلود شده است ، کد عکس : " + last;
        }
        catch (Exception ex)
        {
            ExceptionUtility.LogExceptionNotFailure(ex);
            Debug.WriteLine(ex.ToString());
            imageAlert.InnerText = "فایل نمیتواند آپلود شود.";
        }
    }
    else
    {
        imageAlert.InnerText = "فایل مجاز نیست";
    }
}

【问题讨论】:

    标签: c# asp.net file-upload updatepanel


    【解决方案1】:

    您正在将 imageUploadAction 按钮设置为 PostBackTrigger(因此不是异步),这会导致页面完全重新加载。

    请注意,无法通过 UpdatePanel 使用常规上传器。如果你真的想要异步文件上传,你必须在客户端和服务器端都实现相当多的代码。

    在这里查看 FlowJs https://github.com/flowjs/flow.js 这里有一个演示 http://flowjs.github.io/ng-flow/

    希望有帮助

    【讨论】:

      猜你喜欢
      • 2016-07-25
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      相关资源
      最近更新 更多