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.
答案 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);
},