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

时间:2010-07-12 16:10:56

标签: c# asp.net asp.net-ajax asyncfileupload

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

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

我的表单看起来像这样:

<%-- ... 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 个答案:

答案 0 :(得分:1)

AsyncFileUpload并不像这样。只有在OnUploadedComplete事件中使用filedata时才能正常工作。

我只是咬紧牙关,使用像SWFUpload这样的东西,或者只使用原生的FileUpload控件。

答案 1 :(得分:0)

private bool _justDeleted = false;

void AsyncFileUpload1_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
{
    if (_justDeleted) return;

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