Changeset 6071
- Timestamp:
- 05/02/12 16:30:34 (12 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/draw_api.js
r6047 r6071 3671 3671 content.find(".attachment td").filter(".value").prepend(DataLayer.render("../prototype/modules/mail/templates/attachment.ejs", {ID:ID})); 3672 3672 var fileUploadMSG = $('#fileupload_msg'+ID); 3673 var maxAttachmentSi se = (preferences.max_attachment_size !== "" && preferences.max_attachment_size != 0) ? (parseInt(preferences.max_attachment_size.replace('M', '')) * 1048576 ) : false;3673 var maxAttachmentSize = (preferences.max_attachment_size !== "" && preferences.max_attachment_size != 0) ? (parseInt(preferences.max_attachment_size.replace('M', '')) * 1048576 ) : false; 3674 3674 3675 3675 fileUploadMSG.find(".button-files-upload").fileupload({ 3676 sequentialUploads: true, 3676 type: 'post', 3677 dataType : 'json', 3678 url: "../prototype/post.php", 3679 forceIframeTransport: true, 3680 formData: function(form) { 3681 return [ 3682 { 3683 name : "mailAttachment[0][source]", 3684 value : "files0" 3685 }, 3686 { 3687 name : "mailAttachment[0][disposition]", 3688 value : $(form[0]['attDisposition'+$(form[0]['abaID']).val()]).val() 3689 }, 3690 { 3691 name: "MAX_FILE_SIZE", 3692 value : maxAttachmentSize 3693 } 3694 ]; 3695 }, 3677 3696 add: function (e, data) { 3678 3697 3679 if(!maxAttachmentSi se || data.files[0].size < maxAttachmentSise || is_ie) {3698 if(!maxAttachmentSize || data.files[0].size < maxAttachmentSize || is_ie) { 3680 3699 setTimeout(function() { 3681 $('#attDisposition'+ID).val('attachment'); 3682 delete data.fileInput; 3700 $('#attDisposition'+ID).val('attachment'); 3701 if(!data.fileInput){ 3702 $(fileUploadMSG).find("input")[0].files = data.files; 3703 data['fileInput'] = $(fileUploadMSG).find("input"); 3704 } 3705 if(!data.form) 3706 data['form'] = fileUploadMSG.parents("form:first"); 3683 3707 data.submit(); 3684 }, 5000);3708 }, 3000); 3685 3709 } 3686 3710 var attach = {}; … … 3690 3714 attach.fileName = data.files[0].name.substr(0, 32) + " ... " + data.files[0].name.substr(data.files[0].name.length-9, data.files[0].name.length); 3691 3715 attach.fileSize = formatBytes(data.files[0].size); 3692 if(maxAttachmentSise && data.files[0].size > maxAttachmentSise) 3693 attach.error = 'Tamanho de arquivo nao permitido!!' 3716 data.files[0].size = 300; 3717 if(maxAttachmentSize && data.files[0].size > maxAttachmentSize) 3718 attach.error = 'Tamanho de arquivo nao permitido!!!' 3694 3719 3695 3720 var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); … … 3708 3733 fileUploadMSG.find('.attachments-list').append(upload); 3709 3734 3710 if(!maxAttachmentSi se || data.files[0].size < maxAttachmentSise)3735 if(!maxAttachmentSize || data.files[0].size < maxAttachmentSize) 3711 3736 fileUploadMSG.find('.attachments-list').find('[type=file]').addClass('hidden'); 3712 3737 else … … 3715 3740 done: function(e, data){ 3716 3741 if(!!data.result && data.result != "[]" ){ 3717 var newAttach = jQuery.parseJSON(data.result); 3718 3719 //Compatibilidade com Firefox3.6 3720 if(newAttach === null ) newAttach = jQuery.parseJSON(data.result.text()); 3721 3722 var newAttach = jQuery.parseJSON(data.result); 3723 if(newAttach.rollback !== false) 3724 { 3725 fileUploadMSG.find('.in-progress:first').parents('p').append('<input type="hidden" name="fileId[]" value="'+newAttach['mailAttachment'][0][0].id+'"/>').find('.status-upload').addClass('ui-icon ui-icon-check'); 3726 addAttachment(ID,newAttach['mailAttachment'][0][0].id); 3727 } 3728 else 3729 fileUploadMSG.find('.in-progress:first').parents('p').find('.status-upload').append('Erro ao fazer upload!').addClass('message-attach-error'); 3742 var newAttach = data.result; 3743 if(!newAttach.mailAttachment.error){ 3744 if(newAttach.rollback !== false) 3745 { 3746 fileUploadMSG.find('.in-progress:first').parents('p').append('<input type="hidden" name="fileId[]" value="'+newAttach['mailAttachment'][0][0].id+'"/>').find('.status-upload').addClass('ui-icon ui-icon-check'); 3747 addAttachment(ID,newAttach['mailAttachment'][0][0].id); 3748 } 3749 else 3750 fileUploadMSG.find('.in-progress:first').parents('p').find('.status-upload').append('Erro ao fazer upload!').addClass('message-attach-error'); 3751 }else{ 3752 fileUploadMSG.find('.in-progress:first').parents('p').find('.status-upload').append(newAttach.mailAttachment.error).addClass('message-attach-error'); 3753 } 3730 3754 3731 3755 }else { 3732 3756 fileUploadMSG.find(' .progress.on-complete:first').parents('p').find('.status-upload').append('Erro ao fazer upload!').addClass('message-attach-error'); 3733 3757 } 3734 fileUploadMSG.find(' .in-progress:first').remove(); 3735 3736 3758 fileUploadMSG.find(' .in-progress:first').remove(); 3737 3759 } 3738 3760 }).find('[name="files[]"]').css({"height" : "20px", "width": "100px", "border-width": "0 0 0px 0px", "-moz-transform" : "none","-o-transform" : 'none'}); -
trunk/prototype/modules/mail/interceptors/Attachments.php
r5637 r6071 5 5 public function encodeCreateAttachment( &$uri , &$params , &$criteria , $original ){ 6 6 if(!isset($params['source'])) return false; 7 7 8 8 9 if(isset($_FILES[$params['source']])) 9 10 $params = $_FILES[$params['source']]; 10 11 12 if($params['error'] !== 0){ 13 switch ($params['error']){ 14 case 1: 15 throw new Exception('Tamanho de arquivo nao permitido!!! (php.ini)'); 16 case 2: 17 throw new Exception('Tamanho de arquivo nao permitido!!!'); 18 case 3: 19 throw new Exception('Ocorreu um erro durante o upload'); 20 case 4: 21 throw new Exception('Nao e um arquivo valido'); 22 } 23 } 24 11 25 $params['owner'] = Config::me('uidNumber'); 12 26 -
trunk/prototype/modules/mail/templates/attachment.ejs
r5785 r6071 1 < form id="fileupload_msg<%=data.ID%>" class="fileupload" action="mailAttachment:detail" method="POST">1 <div id="fileupload_msg<%=data.ID%>" class="fileupload" style="margin : 15px 0px -15px -10px;"> 2 2 <div class="row fileupload-buttonbar"> 3 3 <div class="button-files-upload"> … … 17 17 </div> 18 18 <br /> 19 </ form>19 </div> -
trunk/prototype/post.php
r5811 r6071 3 3 * com o source em base64 melhoria na performace. 4 4 */ 5 5 6 $data = $_POST; 7 6 8 if( count($_FILES) ) 7 9 { … … 14 16 $counter = count($files); 15 17 $files[$name.$counter] = array('name' => $file['name'][$counter], 16 'type' => $file['type'][$counter], 17 'source' => base64_encode(file_get_contents( $file['tmp_name'][$counter], $file['size'][$counter])), 18 'size' => $file['size'][$counter]); 18 'type' => $file['type'][$counter], 19 'source' => base64_encode(file_get_contents( $file['tmp_name'][$counter], $file['size'][$counter])), 20 'size' => $file['size'][$counter], 21 'error' => $file['error'][$counter] 22 ); 19 23 } 20 24 }else … … 25 29 } 26 30 31 if(isset($data['MAX_FILE_SIZE'])) 32 unset($data['MAX_FILE_SIZE']); 33 27 34 require_once "api/controller.php"; 35 36 Controller::addFallbackHandler( 0, function($e){ throw $e; } ); 28 37 29 38 $result = array(); … … 33 42 $content = array($content); 34 43 35 foreach($content as $key => $value) 36 $result[$concept][] = isset($data['criteria']) ? Controller::put( array( 'concept' => $concept ), $value, isset($data['criteria'])) : Controller::put( array( 'concept' => $concept ), $value); 44 foreach($content as $key => $value){ 45 try{ 46 $result[$concept][] = Controller::put( array( 'concept' => $concept ), $value ); 47 }catch(Exception $e){ 48 $result[$concept]['error'] = $e->getMessage(); 49 } 50 } 37 51 } 38 52 echo json_encode( $result );
Note: See TracChangeset
for help on using the changeset viewer.