- performance: skip imap connection for attachments actions
- created attachments.inc file for attachment upload, remove and display actions
1 files renamed
3 files modified
| | |
| | | 'send' => 'sendmail.inc', |
| | | 'expunge' => 'folders.inc', |
| | | 'purge' => 'folders.inc', |
| | | 'remove-attachment' => 'compose.inc', |
| | | 'display-attachment' => 'compose.inc', |
| | | 'remove-attachment' => 'attachments.inc', |
| | | 'display-attachment' => 'attachments.inc', |
| | | 'upload' => 'attachments.inc', |
| | | ), |
| | | |
| | | 'addressbook' => array( |
File was renamed from program/steps/mail/upload.inc |
| | |
| | | |
| | | /* |
| | | +-----------------------------------------------------------------------+ |
| | | | program/steps/mail/upload.inc | |
| | | | program/steps/mail/attachments.inc | |
| | | | | |
| | | | This file is part of the RoundCube Webmail client | |
| | | | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | |
| | | | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland | |
| | | | Licensed under the GNU GPL | |
| | | | | |
| | | | PURPOSE: | |
| | | | Handle file-upload and make them available as attachments | |
| | | | Upload, remove, display attachments in compose form | |
| | | | | |
| | | +-----------------------------------------------------------------------+ |
| | | | Author: Thomas Bruederli <roundcube@gmail.com> | |
| | | +-----------------------------------------------------------------------+ |
| | | |
| | | $Id$ |
| | | $Id: compose.inc 2081 2008-11-23 12:38:44Z thomasb $ |
| | | |
| | | */ |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | // remove an attachment |
| | | if ($RCMAIL->action=='remove-attachment') |
| | | { |
| | | if (preg_match('/^rcmfile([0-9]+)$/', $_POST['_file'], $regs)) |
| | | { |
| | | $id = $regs[1]; |
| | | if (is_array($_SESSION['compose']['attachments'][$id])) |
| | | { |
| | | @unlink($_SESSION['compose']['attachments'][$id]['path']); |
| | | unset($_SESSION['compose']['attachments'][$id]); |
| | | $OUTPUT->command('remove_from_attachment_list', "rcmfile$id"); |
| | | $OUTPUT->send(); |
| | | } |
| | | } |
| | | exit; |
| | | } |
| | | |
| | | if ($RCMAIL->action=='display-attachment') |
| | | { |
| | | if (preg_match('/^rcmfile([0-9]+)$/', $_GET['_file'], $regs)) |
| | | { |
| | | $id = $regs[1]; |
| | | if (is_array($_SESSION['compose']['attachments'][$id])) |
| | | { |
| | | $apath = $_SESSION['compose']['attachments'][$id]['path']; |
| | | header('Content-Type: ' . $_SESSION['compose']['attachments'][$id]['mimetype']); |
| | | header('Content-Length: ' . filesize($apath)); |
| | | readfile($apath); |
| | | } |
| | | } |
| | | exit; |
| | | } |
| | | |
| | | // attachment upload action |
| | | |
| | | // use common temp dir for file uploads |
| | | $temp_dir = unslashify($CONFIG['temp_dir']); |
| | | |
| | | |
| | | if (!is_array($_SESSION['compose']['attachments'])) { |
| | | $_SESSION['compose']['attachments'] = array(); |
| | |
| | | $OUTPUT->command('auto_save_start', false); |
| | | $OUTPUT->send('iframe'); |
| | | |
| | | ?> |
| | | ?> |
| | |
| | | define('RCUBE_COMPOSE_FORWARD', 0x0107); |
| | | define('RCUBE_COMPOSE_DRAFT', 0x0108); |
| | | |
| | | |
| | | // remove an attachment |
| | | if ($RCMAIL->action=='remove-attachment' && preg_match('/^rcmfile([0-9]+)$/', $_POST['_file'], $regs)) |
| | | { |
| | | $id = $regs[1]; |
| | | if (is_array($_SESSION['compose']['attachments'][$id])) |
| | | { |
| | | @unlink($_SESSION['compose']['attachments'][$id]['path']); |
| | | unset($_SESSION['compose']['attachments'][$id]); |
| | | $OUTPUT->command('remove_from_attachment_list', "rcmfile$id"); |
| | | $OUTPUT->send(); |
| | | } |
| | | exit; |
| | | } |
| | | |
| | | if ($RCMAIL->action=='display-attachment' && preg_match('/^rcmfile([0-9]+)$/', $_GET['_file'], $regs)) |
| | | { |
| | | $id = $regs[1]; |
| | | if (is_array($_SESSION['compose']['attachments'][$id])) |
| | | { |
| | | $apath = $_SESSION['compose']['attachments'][$id]['path']; |
| | | header('Content-Type: ' . $_SESSION['compose']['attachments'][$id]['mimetype']); |
| | | header('Content-Length: ' . filesize($apath)); |
| | | readfile($apath); |
| | | } |
| | | exit; |
| | | } |
| | | |
| | | $MESSAGE_FORM = NULL; |
| | | $MESSAGE = NULL; |
| | | |
| | |
| | | $EMAIL_ADDRESS_PATTERN = '/([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9]([a-z0-9\-][.]?)*[a-z0-9]\\.[a-z]{2,5})/i'; |
| | | |
| | | // actions that do not require imap connection |
| | | $NOIMAP_ACTIONS = array('spell', 'addcontact', 'autocomplete', 'upload'); |
| | | $NOIMAP_ACTIONS = array('spell', 'addcontact', 'autocomplete', 'upload', 'display-attachment', 'remove-attachment'); |
| | | |
| | | |
| | | // log in to imap server |
| | |
| | | $OUTPUT->set_env('task', 'login'); |
| | | $OUTPUT->send('login'); |
| | | } |
| | | |
| | | |
| | | |
| | | // set imap properties and session vars |