Как предотвратить повторную отправку файла AsyncFileUpload при обратной передаче?

Я разрабатываю приложение, которое управляет фотоконкурсом. В этом приложении я использую элемент управления AsyncFileUpload для выбранной пользователем фотографии. UploadedComplete на стороне сервера выполняет базовую проверку и при необходимости масштабирует/обрезает изображение.

Проблема в том, что когда я нажимаю кнопку отправки на странице, содержимое AsyncFileUpload отправляется вместе с другими данными, отправленными пользователем, поэтому пользователю приходится ждать вдвое дольше, чтобы получить ответ от сервера (я ожидание фотографий размером от 3 до 7 МБ, загрузка которых занимает минуту или две).

Моя форма выглядит так:

<%-- ... 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>

Я что-то упустил в документации? Я работал над этим весь день без особого успеха.

Заранее спасибо!


person David Pratte    schedule 12.07.2010    source источник


Ответы (2)


AsyncFileUpload на самом деле так не работает. Это действительно работает только тогда, когда вы используете данные файла в событии OnUploadedComplete.

Я бы просто стиснул зубы и использовал что-то вроде SWFUpload или просто использовал собственный элемент управления FileUpload.

person David Neale    schedule 12.07.2010
comment
В итоге я использовал очень ужасный взлом IFrame из-за мрачного крайнего срока, но если бы я проверил SWFUpload, он мог бы сделать эту работу за меня. У меня только что весь код уже работал, и простой 5-строчный хак казался правильным. - person David Pratte; 18.08.2010

person    schedule
comment
Добро пожаловать в stackoverflow! Всегда лучше предоставить краткое описание примера кода, чтобы повысить точность поста :) - person Picrofo Software; 29.10.2012