Uploadify能否完整发送电子邮件?

时间:2010-05-19 16:07:14

标签: .net jquery-plugins uploadify

Uploadify是一个用于上传多个文件的jQuery / Flash插件。它工作得很好,除了我无法弄清楚当所有文件完成时如何触发电子邮件。如果我尝试向onAllComplete参数添加<% SendEmail(); %>之类的内容,它只会在页面加载时发送电子邮件。

有没有办法在推荐的here处理程序或此post内执行此操作?或者是否有某种方法可以在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 个答案:

答案 0 :(得分:1)

您可以将发送电子邮件的说明放入接收上传文件的脚本中(Upload.ashx。)

上传完成后将调用该文件。

另一种方法是在onComplete回调中进行Ajax调用,调用另一个发送电子邮件的ashx脚本。无论如何,没有JavaScript方式发送电子邮件,你必须在服务器端这样做。

答案 1 :(得分:1)

您需要在服务器端解决此问题。但是Uploadify是一个完全客户端的脚本(JS + Flash)。您需要在服务器端编写/调用邮件代码,该邮件代码将由您在onAllComplete中触发的ajaxical调用调用。您可以使用jQuery.ajax或consorts。

E.g。

        'onAllComplete': function(event, queueID, fileObj, response, data) {
             $.post('somescript.aspx', paramsWhichSignalsServerToSendMail);
        },