1

Uploadify は、複数のファイルをアップロードするための jQuery/Flash プラグインです。すべてのファイルが完了したときに電子メールをトリガーする方法がわかりません。onAllComplete パラメーターに次のようなものを追加しようとすると<% SendEmail(); %>、ページが読み込まれたときに電子メールが送信されるだけです。

ここまたはこの投稿から推奨されるハンドラー内でこれを行う方法はありますか? または、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 としてポストされます。

4

2 に答える 2

1

アップロードされたファイルを受信するスクリプトに電子メールを送信する命令を入れることができます(Upload.ashxあなたの場合)。

そのファイルは、アップロードが完了すると呼び出されます。

別の方法として、コールバックで Ajax 呼び出しをonComplete行い、電子メールを送信する別の ashx スクリプトを呼び出します。とにかく、電子メールを送信する JavaScript の方法はありません。サーバー側でそれを行う必要があります。

于 2010-05-19T16:16:32.917 に答える
1

サーバー側でこれを解決する必要があります。ただし、Uploadify は完全にクライアント側のスクリプト (JS+Flash) です。で起動する ajaxical 呼び出しによって呼び出されるサーバー側でメーリング コードを作成/呼び出す必要がありますonAllCompletejQuery.ajaxこれにはor consorts を使用できます。

例えば

        'onAllComplete': function(event, queueID, fileObj, response, data) {
             $.post('somescript.aspx', paramsWhichSignalsServerToSendMail);
        },
于 2010-05-19T16:17:40.450 に答える