|
|
|
<?php
|
|
|
|
|
|
|
|
/*
|
|
|
|
+-----------------------------------------------------------------------+
|
|
|
|
| program/steps/mail/upload.inc |
|
|
|
|
| |
|
|
|
|
| This file is part of the RoundCube Webmail client |
|
|
|
|
| Copyright (C) 2005, RoundCube Dev. - Switzerland |
|
|
|
|
| Licensed under the GNU GPL |
|
|
|
|
| |
|
|
|
|
| PURPOSE: |
|
|
|
|
| Handle file-upload and make them available as attachments |
|
|
|
|
| |
|
|
|
|
+-----------------------------------------------------------------------+
|
|
|
|
| Author: Thomas Bruederli <roundcube@gmail.com> |
|
|
|
|
+-----------------------------------------------------------------------+
|
|
|
|
|
|
|
|
$Id$
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
if (!$_SESSION['compose'])
|
|
|
|
{
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (strlen($CONFIG['temp_dir']))
|
|
|
|
$temp_dir = $CONFIG['temp_dir'].(!eregi('\/$', $CONFIG['temp_dir']) ? '/' : '').$_SESSION['compose']['id'];
|
|
|
|
|
|
|
|
if (!is_array($_SESSION['compose']['attachments']))
|
|
|
|
{
|
|
|
|
$_SESSION['compose']['attachments'] = array();
|
|
|
|
|
|
|
|
// create temp-dir for uploaded attachments
|
|
|
|
if ($CONFIG['temp_dir'] && is_writeable($CONFIG['temp_dir']))
|
|
|
|
{
|
|
|
|
mkdir($temp_dir);
|
|
|
|
$_SESSION['compose']['temp_dir'] = $temp_dir;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$response = '';
|
|
|
|
|
|
|
|
foreach ($_FILES['_attachments']['tmp_name'] as $i => $filepath)
|
|
|
|
{
|
|
|
|
$tmpfname = tempnam($temp_dir, 'rcmAttmnt');
|
|
|
|
if (copy($filepath, $tmpfname))
|
|
|
|
{
|
|
|
|
$_SESSION['compose']['attachments'][] = array('name' => $_FILES['_attachments']['name'][$i],
|
|
|
|
'mimetype' => $_FILES['_attachments']['type'][$i],
|
|
|
|
'path' => $tmpfname);
|
|
|
|
|
|
|
|
$response .= sprintf("parent.%s.add2attachment_list('%s');\n", $JS_OBJECT_NAME, $_FILES['_attachments']['name'][$i]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// send html page with JS calls as response
|
|
|
|
print <<<EOF
|
|
|
|
<html>
|
|
|
|
<script type="text/javascript">
|
|
|
|
if (parent.$JS_OBJECT_NAME)
|
|
|
|
{
|
|
|
|
$response
|
|
|
|
parent.$JS_OBJECT_NAME.show_attachment_form(false);
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
</html>
|
|
|
|
EOF;
|
|
|
|
exit;
|
|
|
|
|
|
|
|
?>
|