Может ли Uploadify отправить электронную почту по завершении? - PullRequest
1 голос
/ 19 мая 2010

Uploadify - это плагин jQuery / Flash для загрузки нескольких файлов. Он отлично работает, за исключением того, что я не могу понять, как вызвать электронную почту, когда все файлы завершены. Если я пытаюсь добавить что-то вроде <% SendEmail(); %> в параметр onAllComplete, он просто отправляет электронное письмо при загрузке страницы.

Есть ли способ сделать это в рекомендованном обработчике здесь или из этой записи ? Или есть какой-нибудь способ вызвать сообщение в параметре onAllComplete?

<script type="text/javascript">
    // <![CDATA[
    var FirstName = $('[id$=HiddenField4]').val();
    var MiddleName = $('[id$=HiddenField5]').val();
    var ClientName = $('[id$=HiddenField6]').val();
    var queueSize = $('#fileInput').uploadifySettings('queueSize');
    $(document).ready(function() {
        $('#fileInput').uploadify({
            'uploader': 'scripts/uploadify/uploadify.swf',
            'script': 'Upload.ashx',
            'scriptData': { 'first': FirstName, 'middle': MiddleName, 'client': ClientName, 'queueSize': queueSize },
            'cancelImg': 'scripts/uploadify/cancel.png',
            'auto': true,
            'multi': true,
            'fileDesc': 'Image Files',
            'fileExt': '*.jpg;*.png;*.gif;*.bmp;*.jpeg;*.pdf',
            'queueSizeLimit': 90,
            'sizeLimit': 10000000,
            'buttonText': 'Upload Documents',
            'folder': '/uploads',
            'onComplete': function(event, queueID, fileObj, response, data) {
                 alert(response);
            },
            'onAllComplete': function(event, queueID, fileObj, response, data) {
                 <% SendEmail(); %>
            },
            'buttonImg': 'images/upload.png'
         });
      });
      // ]]></script>

Я также попытался использовать queueSize, объявив его

var queueSize = $(".uploadifyQueueItem").size();

queueSize всегда отправляет 0, когда я отлаживаю свой обработчик.

Ответы [ 2 ]

1 голос
/ 19 мая 2010

Вам нужно решить это на стороне сервера. Но Uploadify - это полностью клиентский скрипт (JS + Flash). Вам нужно написать / вызвать почтовый код на стороне сервера, который вызывается при помощи аксиального вызова, который вы запускаете в onAllComplete. Вы можете использовать jQuery.ajax или супруги для этого.

1007 * Е.Г. *

        'onAllComplete': function(event, queueID, fileObj, response, data) {
             $.post('somescript.aspx', paramsWhichSignalsServerToSendMail);
        },
1 голос
/ 19 мая 2010

Вы можете поместить инструкцию для отправки электронной почты в скрипт, который получает загруженный файл (Upload.ashx в вашем случае.)

Этот файл будет вызван после завершения загрузки.

Альтернативой может быть вызов Ajax в обратном вызове onComplete, вызов другого сценария ashx, который отправляет электронные письма. В любом случае, нет способа отправки электронной почты через JavaScript, вам придется делать это на стороне сервера.

...