17 include_once
'./Services/Xml/classes/class.ilSaxParser.php';
18 include_once
'Modules/File/classes/class.ilFileException.php';
19 include_once
'Services/Utilities/classes/class.ilFileUtils.php';
92 $this->result =
false;
103 $this->importDirectory = $a_val;
113 return $this->importDirectory;
123 xml_set_object($a_xml_parser,$this);
124 xml_set_element_handler($a_xml_parser,
'handlerBeginTag',
'handlerEndTag');
125 xml_set_character_data_handler($a_xml_parser,
'handlerCharacterData');
146 if (isset($a_attribs[
"obj_id"]))
149 if ($this->obj_id != -1 && (
int) $read_obj_id != -1 && (
int) $this->obj_id != (
int) $read_obj_id)
154 if (isset($a_attribs[
"type"]))
156 $this->file->setFileType($a_attribs[
"type"]);
158 $this->file->setVersion($this->file->getVersion() + 1);
163 $this->isReadingFile =
true;
164 #echo $a_attribs["mode"];
165 if (isset($a_attribs[
"mode"]))
167 if($a_attribs[
"mode"] ==
"GZIP")
169 if (!function_exists(
"gzread"))
174 elseif ($a_attribs[
"mode"] ==
"ZLIB")
176 if (!function_exists(
"gzuncompress"))
181 elseif ($a_attribs[
"mode"] ==
"COPY")
186 elseif($a_attribs[
'mode'] ==
'REST')
205 $this->cdata = trim($this->cdata);
207 $GLOBALS[
'ilLog']->write(__METHOD__.
': '.$this->cdata);
212 $this->result =
true;
215 if (strlen($this->cdata) == 0)
218 $this->file->setFilename($this->cdata);
219 $this->file->setTitle($this->cdata);
223 $this->file->setTitle(trim($this->cdata));
226 $this->file->setDescription(trim($this->cdata));
229 $this->file->setRating((
bool)$this->cdata);
232 $GLOBALS[
'ilLog']->write($this->mode);
233 $this->isReadingFile =
false;
242 include_once
'./Services/WebServices/Rest/classes/class.ilRestFileStorage.php';
244 $this->tmpFilename = $storage->getStoredFilePath($this->cdata);
249 $this->tmpFilename = $baseDecodedFilename;
264 unlink ($baseDecodedFilename);
272 unlink ($baseDecodedFilename);
276 $this->tmpFilename = $baseDecodedFilename;
280 $this->file->setFileSize(filesize($this->tmpFilename));
283 if(!$this->file->getFileType())
287 #$ilLog->write(__METHOD__.': Trying to detect mime type...');
288 include_once(
'./Services/Utilities/classes/class.ilFileUtils.php');
314 $handle = fopen($this->tmpFilename,
"a");
315 fwrite ($handle, $a_data);
318 $this->cdata .= $a_data;
331 #$ilLog->write(__METHOD__.' '.filesize($this->tmpFilename));
333 if (filesize ($this->tmpFilename) == 0) {
337 $filedir = $this->file->getDirectory($this->file->getVersion());
338 #$ilLog->write(__METHOD__.' '.$filedir);
340 if (!is_dir($filedir))
342 $this->file->createDirectory();
346 $filename = $filedir.
"/".$this->file->getFileName();
350 return rename($this->tmpFilename,
$filename);
364 require_once(
"./Services/History/classes/class.ilHistory.php");
365 ilHistory::_createEntry($this->file->getId(),
"replace", $this->file->getFilename().
",".$this->file->getVersion());
366 $this->file->addNewsNotification(
"file_updated");
379 return $this->result > 0;