/** * Get content of uploaded file. * @param $element name of file upload element * @return mixed false in case of failure, string if ok */ function get_file_content($elname) { global $USER; if (!$this->is_submitted() or !$this->is_validated()) { return false; } $element = $this->_form->getElement($elname); if ($element instanceof MoodleQuickForm_filepicker) { $values = $this->_form->exportValues($elname); if (empty($values[$elname])) { return false; } $draftid = $values[$elname]; $fs = get_file_storage(); $context = get_context_instance(CONTEXT_USER, $USER->id); if (!($files = $fs->get_area_files($context->id, 'user_draft', $draftid, 'id DESC', false))) { return false; } $file = reset($files); return $file->get_content(); } else { if (isset($_FILES[$elname])) { return file_get_contents($_FILES[$elname]['tmp_name']); } } return false; }
/** * Returns 'safe' elements' values * * @param mixed Array/string of element names, whose values we want. If not set then return all elements. * @param bool Whether to remove internal (_qf_...) values from the resultant array */ function exportValues($elementList = null, $filterInternal = false) { $values = parent::exportValues($elementList); if ($filterInternal) { foreach (array_keys($values) as $key) { if (0 === strpos($key, '_qf_')) { unset($values[$key]); } } } return $values; }