/** * add an File with id. * * @param string $session_id current session * @param int $target_id refid of parent in repository * @param string $file_xml qti xml description of test * * @return int reference id in the tree, 0 if not successful */ function addFile($sid, $target_id, $file_xml) { $this->initAuth($sid); $this->initIlias(); if (!$this->__checkSession($sid)) { return $this->__raiseError($this->__getMessage(), $this->__getMessageCode()); } global $rbacsystem, $tree, $ilLog, $ilAccess; if (!($target_obj =& ilObjectFactory::getInstanceByRefId($target_id, false))) { return $this->__raiseError('No valid target given.', 'Client'); } if (ilObject::_isInTrash($target_id)) { return $this->__raiseError("Parent with ID {$target_id} has been deleted.", 'CLIENT_TARGET_DELETED'); } // Check access $allowed_types = array('cat', 'grp', 'crs', 'fold', 'root'); if (!in_array($target_obj->getType(), $allowed_types)) { return $this->__raiseError('No valid target type. Target must be reference id of "course, group, category or folder"', 'Client'); } if (!$ilAccess->checkAccess('create', '', $target_id, "file")) { return $this->__raiseError('No permission to create Files in target ' . $target_id . '!', 'Client'); } // create object, put it into the tree and use the parser to update the settings include_once './Modules/File/classes/class.ilFileXMLParser.php'; include_once './Modules/File/classes/class.ilFileException.php'; include_once './Modules/File/classes/class.ilObjFile.php'; $file = new ilObjFile(); try { $fileXMLParser = new ilFileXMLParser($file, $file_xml); if ($fileXMLParser->start()) { global $ilLog; $ilLog->write(__METHOD__ . ': File type: ' . $file->getFileType()); $file->create(); $file->createReference(); $file->putInTree($target_id); $file->setPermissions($target_id); // we now can save the file contents since we know the obj id now. $fileXMLParser->setFileContents(); #$file->update(); return $file->getRefId(); } else { return $this->__raiseError("Could not add file", "Server"); } } catch (ilFileException $exception) { return $this->__raiseError($exception->getMessage(), $exception->getCode() == ilFileException::$ID_MISMATCH ? "Client" : "Server"); } }
/** * Generate files * * @param * @return */ function generateFiles($a_test_file, $a_files_per_course = 10, $a_title_base = "File") { global $tree; include_once "./Modules/File/classes/class.ilObjFile.php"; $this->log("Creating Files"); $a_current = $a_start; // get all categories and sort them by depth $crs_ref_ids = ilUtil::_getObjectsByOperations("crs", "read", 0, $limit = 1000000); $cnt = 1; foreach ($crs_ref_ids as $rid) { for ($i = 1; $i <= $a_files_per_course; $i++) { $this->log($a_title_base . " " . $cnt); $fileObj = new ilObjFile(); $fileObj->setTitle($a_title_base . " " . $cnt); $fileObj->setFileName("file_" . $cnt . ".txt"); $fileObj->create(); $fileObj->createReference(); $fileObj->putInTree($rid); $fileObj->setPermissions($rid); $fileObj->createDirectory(); $fileObj->getUploadFile($a_test_file, "file_" . $cnt . ".txt"); $cnt++; } } }
/** * Creates a dav file as a child of this object. * * @param string the name of the file. * @return ilObjectDAV returns the created object, or null if creation failed. */ function createFile($name) { global $tree; // create and insert Folder in tree require_once 'Modules/File/classes/class.ilObjFile.php'; $newObj = new ilObjFile(0); $newObj->setType($this->getILIASFileType()); $newObj->setTitle($name); $newObj->setFileName($name); include_once "./Services/Utilities/classes/class.ilMimeTypeUtil.php"; $mime = ilMimeTypeUtil::getMimeType("", $name, 'application/octet-stream'); //$newObj->setFileType('application/octet-stream'); $newObj->setFileType($mime); //$newObj->setDescription(''); $newObj->create(); $newObj->createReference(); $newObj->setPermissions($this->getRefId()); $newObj->putInTree($this->getRefId()); //$newObj->createDirectory(); require_once 'class.ilObjFileDAV.php'; $objDAV = new ilObjFileDAV($newObj->getRefId(), $newObj); /* $fs = $objDAV->getContentOutputStream(); fwrite($fs,' '); fclose($fs); */ return $objDAV; }
public function handleFileUpload() { global $tree; include_once './Modules/Session/classes/class.ilEventItems.php'; $ev = new ilEventItems($this->object->getId()); $items = $ev->getItems(); $counter = 0; while (true) { if (!isset($_FILES['files']['name'][$counter])) { break; } if (!strlen($_FILES['files']['name'][$counter])) { $counter++; continue; } include_once './Modules/File/classes/class.ilObjFile.php'; $file = new ilObjFile(); $file->setTitle(ilUtil::stripSlashes($_FILES['files']['name'][$counter])); $file->setDescription(''); $file->setFileName(ilUtil::stripSlashes($_FILES['files']['name'][$counter])); $file->setFileType($_FILES['files']['type'][$counter]); $file->setFileSize($_FILES['files']['size'][$counter]); $file->create(); $new_ref_id = $file->createReference(); $file->putInTree($tree->getParentId($this->object->getRefId())); $file->setPermissions($tree->getParentId($this->object->getRefId())); $file->createDirectory(); $file->getUploadFile($_FILES['files']['tmp_name'][$counter], $_FILES['files']['name'][$counter]); $items[] = $new_ref_id; $counter++; } $ev->setItems($items); $ev->update(); }
/** * Creates and inserts file object into tree * * @author Jan Hippchen * @version 1.6.9.07 * @param string $filename Name of the object * @param string $path Path to file * @param integer $ref_id ref_id of parent */ function createFile($filename, $path, $ref_id, $tree = null, $access_handler = null) { global $rbacsystem; if (!$access_handler) { $permission = $rbacsystem->checkAccess("create", $ref_id, "file"); } else { $permission = $access_handler->checkAccess("create", "", $ref_id, "file"); } if ($permission) { // create and insert file in grp_tree include_once "./Modules/File/classes/class.ilObjFile.php"; $fileObj = new ilObjFile(); $fileObj->setType($this->type); $fileObj->setTitle(ilFileUtils::utf8_encode(ilUtil::stripSlashes($filename))); $fileObj->setFileName(ilFileUtils::utf8_encode(ilUtil::stripSlashes($filename))); // better use this, mime_content_type is deprecated include_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php"; $fileObj->setFileType(ilObjMediaObject::getMimeType($path . "/" . $filename)); $fileObj->setFileSize(filesize($path . "/" . $filename)); $fileObj->create(); // repository if (!$access_handler) { $fileObj->createReference(); $fileObj->putInTree($ref_id); $fileObj->setPermissions($ref_id); self::$new_files[$ref_id][] = $fileObj; } else { $node_id = $tree->insertObject($ref_id, $fileObj->getId()); $access_handler->setPermissions($ref_id, $node_id); } // upload file to filesystem $fileObj->createDirectory(); $fileObj->storeUnzipedFile($path . "/" . $filename, ilFileUtils::utf8_encode(ilUtil::stripSlashes($filename))); } else { $this->ilErr->raiseError($this->lng->txt("permission_denied"), $this->ilErr->MESSAGE); } }