static function newFile($db, $file, $mime = '', $orig_name = '', $base_path) { if (!$mime) { $mime = Dase_File::getMimeType($file); } if ($mime) { if (!isset(self::$types_map[$mime])) { throw new Exception("DASe does not handle {$mime} mime type ({$orig_name})"); } $orig_name = $orig_name ? $orig_name : $file; //creates proper subclass $dasefile = new self::$types_map[$mime]['class']($file, $mime); $dasefile->size = self::$types_map[$mime]['size']; $dasefile->ext = self::$types_map[$mime]['ext']; $dasefile->mime_type = $mime; $dasefile->base_path = $base_path; $dasefile->orig_name = $orig_name; $dasefile->db = $db; return $dasefile; } else { throw new Exception("cannot determin mime type for {$file}"); } }