Ejemplo n.º 1
0
 /**
  * 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;
 }