2010-07-12 64 views
0

我正在开发一个管理照片比赛的应用程序。在该应用程序中,我为用户选择的照片使用了AsyncFileUpload控件。服务器端UploadedComplete进行基本验证,并根据需要缩放/剪切图像。如何防止AsyncFileUpload在回发中再次发送文件?

问题是,当我点击页面上的提交按钮时,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> 

有什么我的文档中错过了?我一整天都在努力,没有太大的成功。

在此先感谢!

回答

1

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

我只是咬紧牙关,使用像SWFUpload或只使用本地FileUpload控制。

+0

最后我用一个很可怕的IFrame破解由于期限glooming,但如果我检查的SWFUpload它可以做的工作对我来说。我只是让所有的代码都能正常工作,一条简单的5行“黑客”似乎是正确的。 – 2010-08-18 15:39:44

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; 
+0

欢迎来到计算器!提供示例代码的简短说明总是更好,以提高发布准确性:) – 2012-10-29 14:37:57