/** * Returns array('success'=>true) or array('error'=>'error message') */ function handleUpload($uploadDirectory, $replaceOldFile = FALSE) { if (!is_writable($uploadDirectory)) { return array('error' => "Server error. Upload directory isn't writable."); } if (!$this->file) { return array('error' => 'No files were uploaded.'); } $size = $this->file->getSize(); if ($size == 0) { return array('error' => 'File is empty'); } if ($size > $this->sizeLimit) { return array('error' => 'File is too large'); } $pathinfo = pathinfo($this->file->getName()); $filename = $pathinfo['filename']; //$filename = md5(uniqid()); $ext = $pathinfo['extension']; if ($this->allowedExtensions && !in_array(strtolower($ext), $this->allowedExtensions)) { $these = implode(', ', $this->allowedExtensions); return array('error' => 'File has an invalid extension, it should be one of ' . $these . '.'); } $artefact = \ArtefactModel::getById($this->envid); if ($this->file->save($uploadDirectory . $filename . '.' . $ext)) { $artefact->setData(file_get_contents($uploadDirectory . $filename . '.' . $ext), detectMimeType($filename . '.' . $ext)); unlink($uploadDirectory . $filename . '.' . $ext); return array('success' => true, 'oid' => $artefact->getId()); } else { return array('success' => false, 'oid' => $artefact->getId()); } }
function importFolder($directory) { $xmlDoc = simplexml_load_file($directory . "/leap2A.xml"); $author = $xmlDoc->author->name; $updated = $xmlDoc->updated; foreach ($xmlDoc->entry as $entry) { $fileUri = $directory . "/" . $entry->link['href']; $mimeType = detectMimeType($fileUri); $content = file_get_contents($fileUri, $mimeType); $name = $entry->title; $artefactType = $entry->category['type']; switch ($artefactType) { case "SCHOOL": $artefact = ArtefactSchool::create($name); case "EMPLOYMENT": $artefact = ArtefactEmployment::create($name); case "CERTIFICATE": $artefact = ArtefactCertificate::create($name); default: $artefact = ArtefactCertificate::create($name); } $artefact->setData($content, $mimeType); foreach ($entry->competence as $comp) { $artefact->addCompetenceString($comp->index, $comp->rating); } $updated = strtotime($entry->updated); $artefact->set_attribute("OBJ_LAST_MODIFIED", $updated); //"OBJ_MODIFICATION_TIME"? $published = strtotime($entry->published); } }