/** * Called after a file was uploaded. */ public function uploadFiles() { include_once "./Services/JSON/classes/class.ilJsonUtil.php"; $response = new stdClass(); $response->error = null; $response->debug = null; $files = $_FILES; // #14249 - race conditions because of concurrent uploads $after_creation_callback = (int) $_REQUEST["crtcb"]; if ($after_creation_callback) { $this->after_creation_callback_objects = array(); unset($_REQUEST["crtcb"]); } // load form $dnd_form_gui = $this->initMultiUploadForm(); if ($dnd_form_gui->checkInput()) { try { if (!$this->checkPermissionBool("create", "", "file")) { $response->error = $this->lng->txt("permission_denied"); } else { // handle the file $fileresult = $this->handleFileUpload($dnd_form_gui->getInput("upload_files")); if ($fileresult) { $response = (object) array_merge((array) $response, (array) $fileresult); } } } catch (Exception $ex) { $response->error = $ex->getMessage() . " ## " . $ex->getTraceAsString(); } } else { $dnd_input = $dnd_form_gui->getItemByPostVar("upload_files"); $response->error = $dnd_input->getAlert(); } if ($after_creation_callback && sizeof($this->after_creation_callback_objects)) { foreach ($this->after_creation_callback_objects as $new_file_obj) { ilObject2GUI::handleAfterSaveCallback($new_file_obj, $after_creation_callback); } unset($this->after_creation_callback_objects); } // send response object (don't use 'application/json' as IE wants to download it!) header('Vary: Accept'); header('Content-type: text/plain'); echo ilJsonUtil::encode($response); // no further processing! exit; }