代码之家  ›  专栏  ›  技术社区  ›  David Pratte

如何防止AsyncFileUpload在回发时再次发送文件?

  •  0
  • David Pratte  · 技术社区  · 16 年前

    我正在开发一个管理照片竞赛的应用程序。在该应用程序中,我对用户选择的照片使用AsyncFileUpload控件。服务器端UploadedComplete执行基本验证,并根据需要缩放/剪裁图像。

    问题是,当我单击页面上的submit按钮时,AsyncFileUpload的内容会与其他用户提交的数据一起发送,因此用户需要等待两倍的时间才能从服务器得到响应(我希望照片大小在3到7MB之间,上传需要一两分钟)。

    我的表格是这样的:

    <%-- ... snip - all other fields ... -->
    <div style="margin-top: 20px; margin-bottom: 5px;">
        <span class="texteB"><b>Upload a photo</b></span><br />
        Browse your computer to find a photo.</div>
    <div>
        <asp:AsyncFileUpload onclientuploaderror="UploadError" persistfile="true" onuploadedcomplete="fuPhoto_UploadedComplete"
            completebackcolor="#52ad0b" onclientuploadstarted="UploadStarted" id="fuPhoto"
            throbberid="throbber" runat="server" />
    </div>
    <div runat="server" id="throbber" style="display: none; margin: 8px 0 15px 0">
        <div style="float: left; width: 48px;">
            <img src="images/throbber.gif" /></div>
        <span class="texteV_14pt"><b>Please wait while
            <br />
            your photo is uploaded...</b></span>
    </div>
    <div style="margin-top: 20px; margin-bottom: 20px;">
        Please double-check your informations and press Send when ready.</div>
    <div>
        <asp:ImageButton onclick="btnSubmit_Click" ImageUrl="images/bt_envoyer_demande.gif"
            runat="server" id="btnSubmit" />
    </div>
    

    文件中有什么我遗漏的吗?我一整天都在做这件事,但都没有成功。

    提前谢谢!

    2 回复  |  直到 16 年前
        1
  •  1
  •   David Neale    16 年前

    这个 AsyncFileUpload 不是这样的。只有在使用 OnUploadedComplete 事件。

    我会咬紧牙关用SWFUpload之类的东西,或者用本地人 FileUpload

        2
  •  0
  •   Michael Myers KitsuneYMG    14 年前
    private bool _justDeleted = false;
    
    void AsyncFileUpload1_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
    {
        if (_justDeleted) return;
    

    protected void btnDeleteLogo_Click(object sender, EventArgs e)
    {
        _justDeleted = true;