public function process($filepath, $files, $extension = 'gif png jpg jpeg', $filesize = false, $safe = true) { global $user, $config; if (!is_array($files)) { $files = request_var('files:' . $files); if ($files === false) return false; } if (isset($files['name']) && !is_array($files['name'])) { foreach ($files as $i => $row) { $files[$i] = array($row); } } $umask = umask(0); $files = $this->array_merge($files); if (!is_array($extension)) { $extension = w($extension); } if (!sizeof($files)) { $this->error[] = lang('files_no_files'); return false; } if ($filesize === false) { $filesize = upload_maxsize(); } foreach ($files as $i => $row) { if ($row['error']) { if ($row['error'] == 4) { unset($files[$i]); } continue; } $r = $this->_row($filepath, $row['name']); $r->size = $row['size']; $r->tmp = $row['tmp_name']; if ($safe && preg_match('/\.(cgi|pl|js|asp|php|html|htm|jsp|jar|exe|dll|bat)/', $r->name)) { $r->extension = 'txt'; } if (!in_array($r->extension, $extension)) { $this->error[] = sprintf(lang('upload_invalid_ext'), $r->name); $r->error = 1; continue; } if ($r->size > $filesize) { $this->error[] = sprintf(lang('upload_too_big'), $r->name, ($filesize / 1048576)); $r->error = 1; continue; } if (!@is_writable($filepath)) { $this->error[] = 'Reading error.'; $r->error = 1; continue; } if (!@move_uploaded_file($r->tmp, $r->filepath)) { $this->error[] = sprintf(lang('upload_failed'), $r->name); $r->error = 1; continue; } _chmod($row['filepath'], $config['mask']); if (@filesize($r->filepath) > $filesize) { _rm($r->filepath); $this->error[] = sprintf(lang('upload_too_big'), $r->name, ($filesize / 1048576)); $r->error = 1; continue; } $files[$i] = $r; } @umask($umask); return (count($files)) ? $files : false; }
protected function _distribute_home() { if ($this->submit) { $sql = 'SELECT COUNT(server_id) AS total FROM _servers'; $servers = sql_field($sql, 'total', 0); require_once(XFS . 'core/upload.php'); $upload = new upload(); $f = $upload->process('./data/tmp/', request_var('files:batch', array('' => array())), w('jpg'), upload_maxsize()); var_dump($f); exit; } return; }
function page_layout($page_title, $htmlpage, $custom_vars = false, $js_keepalive = true) { global $config, $user, $cache, $starttime, $template; // // gzip_compression // if (strstr($user->browser,'compatible') || strstr($user->browser,'Gecko')) { ob_start('ob_gzhandler'); } monetize(); // Get today items count $sql = 'SELECT COUNT(element) AS total FROM _members_unread WHERE user_id = ?'; $today_count = sql_field(sql_filter($sql, $user->d('user_id')), 'total', 0); // // Send headers // header('Cache-Control: private, no-cache="set-cookie", pre-check=0, post-check=0'); header('Expires: 0'); header('Pragma: no-cache'); // // Footer // $u_session = ($user->is('member')) ? 'out' : 'in'; if (preg_match('#.*?my/confirm.*?#is', $user->d('session_page'))) { $user->d('session_page', ''); } $common_vars = array( 'PAGE_TITLE' => lang($page_title, $page_title), '_SELF' => _page(), 'U_REGISTER' => s_link('signup'), 'U_SESSION' => s_link('sign' . $u_session), 'U_PROFILE' => s_link('m', $user->d('username_base')), 'U_EDITPROFILE' => s_link('my profile'), 'U_PASSWORD' => s_link('signr'), 'U_DC' => s_link('my dc'), 'U_HOME' => s_link(), 'U_FAQ' => s_link('faq'), 'U_WHATS_NEW' => s_link('today'), 'U_ARTISTS' => s_link('a'), 'U_AWARDS' => s_link('awards'), 'U_RADIO' => s_link('radio'), 'U_BROADCAST' => s_link('broadcast'), 'U_NEWS' => s_link('news'), 'U_EVENTS' => s_link('events'), 'U_FORUM' => s_link('board'), 'U_COMMUNITY' => s_link('community'), 'U_ALLIES' => s_link('allies'), 'U_TOS' => s_link('tos'), 'U_HELP' => s_link('help'), 'U_RSS_NEWS' => s_link('rss', 'news'), 'U_RSS_ARTISTS' => s_link('rss', 'artists'), 'U_COMMENTS' => s_link('comments'), 'U_EMOTICONS' => s_link('emoticons'), 'U_ACP' => (isset($template->vars['U_ACP'])) ? $template->vars['U_ACP'] : ($user->is('artist') || $user->is('mod') ? s_link('acp') : ''), 'S_YEAR' => date('Y'), 'S_UPLOAD' => upload_maxsize(), 'S_GIT' => $config['git_push_time'], 'S_KEYWORDS' => $config['meta_keys'], 'S_DESCRIPTION' => $config['meta_desc'], 'S_SERVER' => '//' . $config['server_name'], 'S_ASSETS' => $config['assets_url'], 'S_DIST' => '/dist/', 'S_SQL' => ($user->d('is_founder')) ? sql_queries() . 'q | ' : '', 'S_REDIRECT' => $user->d('session_page'), 'S_USERNAME' => $user->d('username'), 'S_MEMBER' => $user->is('member'), 'S_TODAY_COUNT' => (($today_count == 1) ? sprintf(lang('unread_item_count'), $today_count) : sprintf(lang('unread_items_count'), $today_count)) ); if ($custom_vars !== false) { $common_vars += $custom_vars; } $mtime = explode(' ', microtime()); $common_vars['S_TIME'] = sprintf('%.2f', ($mtime[0] + $mtime[1] - $starttime)); v_style($common_vars); $template->set_filenames(array( 'body' => $htmlpage . '.htm') ); $template->pparse('body'); sql_close(); exit; }