function add() { if (Upload::isUploadSuccessful("my_file")) { $peer = new ImmaginiPeer(); $do = $peer->new_do(); $peer->setupByParams($do); $d = new Dir("/immagini/user/" . Session::get("/session/username") . Params::get("folder")); if (!$d->exists()) { $d->touch(); } $do->save_folder = $d->getPath(); $do->real_name = Upload::getRealFilename("my_file"); $do->folder = Params::get("folder"); $tokens = explode(".", Upload::getRealFilename("my_file")); $extension = $tokens[count($tokens) - 1]; $do->hash_name = md5(uniqid()) . "." . strtolower($extension); Upload::saveTo("my_file", $do->save_folder, $do->hash_name); $peer->save($do); if (is_html()) { Flash::ok("Immagine aggiunta con successo."); return Redirect::success(); } else { return ActiveRecordUtils::toArray($do); } } else { Flash::error(Upload::getUploadError("my_file")); return Redirect::failure(); } }
function add() { ini_set('upload_max_filesize', 8388608 * 4); if (Upload::isUploadSuccessful("my_file")) { $peer = new DocumentiPeer(); $do = $peer->new_do(); $peer->setupByParams($do); $d = new Dir("/documenti/user/" . Session::get("/session/username") . "/contenuti/"); if (!$d->exists()) { $d->touch(); } $do->save_folder = $d->getPath(); $do->real_name = Upload::getRealFilename("my_file"); $do->folder = Params::get("folder"); $tokens = explode(".", Upload::getRealFilename("my_file")); $extension = $tokens[count($tokens) - 1]; $do->hash_name = md5(uniqid()) . "." . strtolower($extension); Upload::saveTo("my_file", $do->save_folder, $do->hash_name); $peer->save($do); Flash::ok("Documento aggiunto con successo."); return Redirect::success(); } else { return Redirect::failure(Upload::getUploadError("my_file")); } }
function __saveAttachedFile($do) { if ($this->__uploadMaxFilesize() != null) { ini_set('upload_max_filesize', $this->__uploadMaxFilesize()); } $d = new Dir($this->__saveFolderPath()); if (!$d->exists()) { $d->touch(); } $do->save_folder = $d->getPath(); $do->real_name = Upload::getRealFilename("my_file"); $tokens = explode(".", Upload::getRealFilename("my_file")); $extension = $tokens[count($tokens) - 1]; $do->hash_name = md5(uniqid()) . "." . strtolower($extension); Upload::saveTo("my_file", $do->save_folder, $do->hash_name); }
function get_rotator() { $result = array(); $result["rotator_name"] = Params::get("name"); $result["image_list"] = array(); $d = new Dir(self::ROTATOR_GALLERIES_ROOT_PATH . $result["rotator_name"] . "/"); if ($d->exists()) { $files = $d->listFiles(); foreach ($files as $f) { if ($f->isFile()) { $img = array(); $img["path"] = $f->getPath(); $img["title"] = str_replace("_", " ", $f->getName()); $result["image_list"][] = $img; } } } else { echo "Rotator gallery directory not found! : " . $d->getPath(); } return $result; }
function get_parent_folder() { $current_folder = new Dir($this->get_current_folder()); $root_dir = new Dir($this->get_user_root()); if ($root_dir->isParentOf($current_folder)) { return $current_folder->getParent()->getPath(); } else { return $root_dir->getPath(); } }
static function extract($f, $dir) { if ($f instanceof File) { $source_file = $f; } else { $source_file = new File($f); } if ($dir instanceof Dir) { $target_dir = $dir; } else { $target_dir = new Dir($dir); } $reader = $source_file->openReader(); $binarydata = $reader->read(3); $data = unpack("a3", $binarydata); if ($data[1] !== self::FF_ARCHIVE_HEADER) { throw new InvalidDataException("Intestazione del file non valida : " . $data[1]); } $binarydata = $reader->read(2 + 2 + 2); $data = unpack("v3", $binarydata); if ($data[1] !== self::CURRENT_MAJOR || $data[2] !== self::CURRENT_MINOR || $data[3] !== self::CURRENT_REV) { throw new InvalidDataException("Versione del file non supportata!! : " . $data[1] . "-" . $data[2] . "-" . $data[3]); } //properties $binarydata = $reader->read(2); $data = unpack("v", $binarydata); $properties_length = $data[1]; if ($properties_length > 0) { $binarydata = $reader->read($properties_length); $data = unpack("a*", $binarydata); $properties = PropertiesUtils::readFromString($data[1], false); } else { $properties = array(); } //num entries $binarydata = $reader->read(2); $data = unpack("v", $binarydata); $num_entries = $data[1]; $i = 0; while ($i < $num_entries) { //entry type $binarydata = $reader->read(2); $data = unpack("v", $binarydata); $entry_type = $data[1]; //path length $binarydata = $reader->read(2); $data = unpack("v", $binarydata); $path_length = $data[1]; //path $binarydata = $reader->read($path_length); $data = unpack("a*", $binarydata); $path = $data[1]; if ($entry_type === self::ENTRY_TYPE_DIR) { $d = $target_dir->newSubdir($path); $d->touch(); } if ($entry_type === self::ENTRY_TYPE_FILE) { //compressed size $binarydata = $reader->read(4); $data = unpack("V", $binarydata); $num_bytes = $data[1]; //compressed data $compressed_file_data = $reader->read($num_bytes); $uncompressed_file_data = gzuncompress($compressed_file_data); $f = new File($target_dir->getPath() . $path); $writer = $f->openWriter(); $writer->write($uncompressed_file_data); $writer->close(); //sha1 sum $sha1_checksum = $reader->read(20); if (strcmp($sha1_checksum, sha1_file($f->getFullPath(), true)) !== 0) { throw new InvalidDataException("La somma sha1 non corrisponde per il file : " . $f->getPath()); } } $i++; } $reader->close(); return true; }
function testGetPathRelative() { $my_included_file = new Dir("/" . FRAMEWORK_CORE_PATH . "tests/io/include_teiop/"); $rel_path = $my_included_file->getPath(new Dir("/" . FRAMEWORK_CORE_PATH . "tests")); $this->assertEqual("/io/include_teiop/", $rel_path, "Il percorso relativo non viene elaborato correttamente!! : " . $rel_path); $rel_path = $my_included_file->getPath(new Dir("/" . FRAMEWORK_CORE_PATH . "tests/io/")); $this->assertEqual("/include_teiop/", $rel_path, "Il percorso relativo non viene elaborato correttamente!! : " . $rel_path); $this->expectException("InvalidDataException"); $this->assertEqual("/include_teiop/", $my_included_file->getPath(new Dir("/pluto/tests/io/include_test")), "Il percorso relativo non viene elaborato correttamente!!"); }
function testExecute() { ModuleUtils::set_modules_path(FRAMEWORK_CORE_PATH . "tests/base/fakeroot/modules/"); $ciccia_dir = new Dir("/" . FRAMEWORK_CORE_PATH . "tests/modules/module_plug_root/ciccia/"); $db_desc = DB::newDatabaseDescription(); $this->assertFalse($db_desc->hasTable("my_entity"), "La tabella my_entity e' gia' presente nel database!!"); $this->assertFalse($ciccia_dir->exists(), "La directory 'ciccia' esiste gia'!!"); //dove innesto i moduli $module_plug_test_root = new Dir("/" . FRAMEWORK_CORE_PATH . "tests/modules/module_plug_root/"); ModulePlug::setRootDir($module_plug_test_root->getPath()); $plug = new ModulePlug(new Dir("/" . FRAMEWORK_CORE_PATH . "tests/base/fakeroot/modules/ecommerce/cart/")); $def = AvailableModules::get_available_module_definition("ecommerce", "cart"); $install_data = $def->get_action_data("install"); $plug->execute($install_data); $db_desc = DB::newDatabaseDescription(); $this->assertTrue($db_desc->hasTable("my_entity"), "La tabella my_entity non e' stata creata!!"); $sel = DB::newSelect("my_entity"); $sel->count("*", "num_entries"); $result = $sel->exec_fetch_assoc(); $this->assertEqual($result["num_entries"], 2, "Il numero di righe nella tabella non corrisponde!!"); $table_desc = DB::newTableFieldsDescription("my_entity"); $this->assertTrue($table_desc->hasField("new_field"), "Il campo new_field non e' stato aggiunto!!"); $this->assertTrue($table_desc->hasField("int_field"), "Il campo int_field non e' stato aggiunto!!"); $ciccia_dir = new Dir("/" . FRAMEWORK_CORE_PATH . "tests/modules/module_plug_root/ciccia/"); $this->assertTrue($ciccia_dir->exists(), "La directory 'ciccia' non e' stata creata!!"); $uninstall_data = $def->get_action_data("uninstall"); $plug->execute($uninstall_data[0]); $this->assertFalse($ciccia_dir->exists(), "La directory ciccia non e' stata eliminata!!"); ModulePlug::setRootDir("/"); }
static function is_module_available($nome_categoria, $nome_modulo) { $d = new Dir(DS . AvailableModules::get_available_module_path($nome_categoria, $nome_modulo)); $module_data = new File($d->getPath() . "/" . self::MODULE_DEFINITION_FILE); if ($d->exists()) { return true; } else { return false; } }
function isParentOf($folder) { if ($folder instanceof Dir) { $d = $folder; } else { $d = new Dir($folder); } $path_a = $this->getPath(); $path_b = $d->getPath(); return StringUtils::starts_with($path_b, $path_a); }