public function addAttachmentFromUpload($field)
{
global $browser;
try {
$browser->wasFileUploaded($field, _("attachment"));
} catch (Horde_Browser_Exception $e) {
throw new IMP_Compose_Exception($e);
}
$finfo = array();
if (is_array($_FILES[$field]['size'])) {
for ($i = 0; $i < count($_FILES[$field]['size']); ++$i) {
$tmp = array();
foreach ($_FILES[$field] as $key => $val) {
$tmp[$key] = $val[$i];
}
$finfo[] = $tmp;
}
} else {
$finfo[] = $_FILES[$field];
}
$out = array();
foreach ($finfo as $val) {
switch (empty($val['type']) ? $val['type'] : '') {
case 'application/unknown':
case '':
$type = 'application/octet-stream';
break;
default:
$type = $val['type'];
break;
}
try {
$out[] = $this->_addAttachment($val['tmp_name'], $val['size'], Horde_Util::dispelMagicQuotes($val['name']), $type);
} catch (IMP_Compose_Exception $e) {
$out[] = $e;
}
}
return $out;
}