IMP_Compose::addAttachmentFromUpload PHP Method

addAttachmentFromUpload() public method

Add attachment from uploaded (form) data.
public addAttachmentFromUpload ( string $field ) : array
$field string The form field name.
return array A list of IMP_Compose_Attachment objects (if successfully attached) or IMP_Compose_Exception objects (if error when attaching).
    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;
    }