2010-05-19 8 views
1

Uploadify는 여러 파일을 업로드하기위한 jQuery/Flash 플러그인입니다. 모두 파일이 완료되면 트리거 전자 메일을 어떻게 계산할 수 있는지를 제외하고는 훌륭하게 작동합니다. onAllComplete 매개 변수에 <% SendEmail(); %>과 같은 것을 추가하려고하면 페이지가로드 될 때 전자 메일이 전송됩니다.Uploadify가 완료되면 전자 메일을 보낼 수 있습니까?

권장 처리기 내에서이 작업을 수행하는 방법이 있습니까? 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 0으로

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

QUEUESIZE 항상 게시물로 선언 시도했습니다.

+0

수행중인 작업의 코드 샘플을 포함 할 수 있습니까? 당신이 (꺾쇠 괄호로) 주어진 설명은 말이되지 않습니다. –

답변

1

당신은 업로드 된 파일을 수신하는 스크립트에 전자 메일을 보내도록 명령을 넣을 수 있습니다 (귀하의 경우 Upload.ashx합니다.) 업로드가 완료되면

그 파일이 호출됩니다.

다른 방법으로는 onComplete 콜백에서 Ajax 호출을 작성하고 전자 메일을 보내는 다른 ashx 스크립트를 호출 할 수 있습니다. 어쨌든, 전자 메일을 보내는 JavaScript 방식이 없기 때문에 서버 쪽에서해야합니다.

+0

핸들러는 모든 파일에 대해 한 번 실행됩니다. 모든 파일 (1 개 이상)이 완료되면 전자 메일을 보내야합니다. –

+0

@David 알겠습니다. 그런 다음 방금 추가 한 마지막 단락을 확인하십시오. –

+0

전자 메일 클라이언트 측을 보낼 방법이 없다는 것을 알고 있지만 자바 스크립트에서 AJAX 게시물을 강제 적용 할 수 있는지 알지 못했습니다. jQuery.ajax()를 봐야할까요? –

1

이 문제는 서버 측에서 해결해야합니다. 그러나 Uploadify는 전적으로 클라이언트 측 스크립트 (JS + Flash)입니다. onAllComplete에서 발사하는 ajaxical 호출에 의해 호출되는 서버 측에서 우편 코드를 작성/호출해야합니다. 당신은 이것을 위해 jQuery.ajax을 사용할 수 있습니다.

예.

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

핸들러는 모든 파일에 대해 한 번 실행됩니다. 모든 파일 (1 개 이상)이 완료되면 전자 메일을 보내야합니다. –

+0

@David : 내가 볼 : – BalusC

+0

나는 포스트 백에 대한 Pekka의 제안 이후에 온 것 같아 이후 코드에 대한 upvote를 얻을. –

관련 문제