Changeset 3289 for branches/2.2/expressoMail1_2/inc/class.exporteml.inc.php
- Timestamp:
- 09/24/10 16:20:17 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2/expressoMail1_2/inc/class.exporteml.inc.php
r3273 r3289 91 91 function createFileZip($files, $tempDir){ 92 92 $tmp_zip_filename = "email_".$_SESSION[ 'phpgw_session' ][ 'session_id' ].".zip"; 93 $command = "cd " . escapeshellarg($tempDir) . " && nice zip -m9 " . escapeshellarg($tmp_zip_filename) . " " . escapeshellcmd($files); 93 94 if (!empty($files)) 95 { 96 if (is_array($files)) 97 { 98 for ($i=0; $i < count($files); $i++) 99 { 100 $files[$i] = escapeshellarg($files[$i]); 101 } 102 $files = implode(' ', $files); 103 } 104 else 105 { 106 $files = escapeshellcmd($files); 107 } 108 } 109 110 $command = "cd " . escapeshellarg($tempDir) . " && nice zip -m9 " . escapeshellarg($tmp_zip_filename) . " " . $files; 94 111 if(!exec($command)) { 95 $command = "cd " . escapeshellarg($tempDir) . " && rm ". escapeshellcmd($files)." ". escapeshellarg($tmp_zip_filename);112 $command = "cd " . escapeshellarg($tempDir) . " && rm ".$files." ". escapeshellarg($tmp_zip_filename); 96 113 exec($command); 97 114 return null; … … 464 481 $imap_attachment = new imap_attachment(); 465 482 $attachments = $imap_attachment->download_attachment($this->mbox_stream, $id_number); 466 foreach($attachments as $i => $attachment){ 467 if($i && $i == 'names') 468 continue; 469 483 484 $fileNames = Array(); 470 485 471 $fileName = $this->remove_accents($attachment['name']); 486 for ($i = 0; $i < count($attachments); $i++) 487 { 488 $attachments[$i]['name'] = $this->remove_accents($attachments[$i]['name']); 489 $fileNames[$i] = $attachments[$i]['name']; 490 } 491 492 for ($i = 0; $i < count($attachments); $i++) 493 { 494 $fileName = $attachments[$i]['name']; 495 $result = array_keys($fileNames, $fileName); 496 497 // Detecta duplicatas 498 if (count($result) > 1) 499 { 500 for ($j = 1; $j < count($result); $j++) 501 { 502 $replacement = '('.$j.')$0'; 503 if (preg_match('/\.\w{2,4}$/', $fileName)) 504 { 505 $fileNames[$result[$j]] = preg_replace('/\.\w{2,4}$/', $replacement, $fileName); 506 } 507 else 508 { 509 $fileNames[$result[$j]] .= "($j)"; 510 } 511 $attachments[$result[$j]]['name'] = $fileNames[$result[$j]]; 512 } 513 } 514 // Fim detecta duplicatas 515 472 516 $f = fopen($tempDir . '/'.$tempSubDir.'/'.$fileName,"wb"); 473 517 if(!$f) 474 518 return False; 475 519 476 $fileNames .= "'".$fileName."' "; 477 $fileContent = imap_fetchbody($this->mbox_stream, $id_number,$attachment['pid'], FT_UID); 478 if($attachment['encoding'] == 'base64') 520 $fileContent = imap_fetchbody($this->mbox_stream, $id_number,$attachments[$i]['pid'], FT_UID); 521 if($attachments[$i]['encoding'] == 'base64') 479 522 fputs($f,imap_base64($fileContent)); 480 523 else … … 487 530 $nameFileZip = ''; 488 531 489 if( $fileNames) {532 if(!empty($fileNames)) { 490 533 $nameFileZip = $this -> createFileZip($fileNames, $tempDir . '/'.$tempSubDir); 491 534 if($nameFileZip)
Note: See TracChangeset
for help on using the changeset viewer.