mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-11-23 00:38:42 +00:00
84 lines
2.3 KiB
PHP
84 lines
2.3 KiB
PHP
|
<?php
|
||
|
|
||
|
class UOJResponse {
|
||
|
public static function message($msg, $title = '消息') {
|
||
|
if (UOJContext::isAjax()) {
|
||
|
die($msg);
|
||
|
} else {
|
||
|
echoUOJPageHeader($title);
|
||
|
echo $msg;
|
||
|
echoUOJPageFooter();
|
||
|
die();
|
||
|
}
|
||
|
}
|
||
|
public static function page403($msg = null) {
|
||
|
header($_SERVER['SERVER_PROTOCOL'] . " 403 Forbidden", true, 403);
|
||
|
if ($msg === null) {
|
||
|
$msg = '<div class="text-center"><div style="font-size:233px">403</div><p>禁止入内! T_T</p></div>';
|
||
|
}
|
||
|
UOJResponse::message($msg, '403');
|
||
|
}
|
||
|
public static function page404($msg = null) {
|
||
|
header($_SERVER['SERVER_PROTOCOL'] . " 404 Not Found", true, 404);
|
||
|
if ($msg === null) {
|
||
|
$msg = '<div class="text-center"><div style="font-size:233px">404</div><p>唔……未找到该页面……你是从哪里点进来的……>_<……</p></div>';
|
||
|
}
|
||
|
self::message($msg, '404');
|
||
|
}
|
||
|
public static function page406($msg = null) {
|
||
|
header($_SERVER['SERVER_PROTOCOL'] . " 406 Not Acceptable", true, 406);
|
||
|
if ($msg === null) {
|
||
|
$msg = '<div class="text-center"><div style="font-size:233px">406</div><p>服务器对你提交的请求好像不太满意</p></div>';
|
||
|
}
|
||
|
self::message($msg, '406');
|
||
|
}
|
||
|
public static function page500($msg) {
|
||
|
header($_SERVER['SERVER_PROTOCOL'] . " 500 Internal Server Error", true, 500);
|
||
|
self::message($msg, '500');
|
||
|
}
|
||
|
public static function page503($msg) {
|
||
|
header($_SERVER['SERVER_PROTOCOL'] . " 503 Service Unavailable", true, 503);
|
||
|
self::message($msg, '503');
|
||
|
}
|
||
|
|
||
|
public static function xsendfile($path, $cfg = []) {
|
||
|
$cfg += [
|
||
|
'mimetype' => null,
|
||
|
'attachment' => null
|
||
|
];
|
||
|
|
||
|
$path = realpath($path);
|
||
|
if (!is_file($path)) {
|
||
|
self::page404();
|
||
|
}
|
||
|
|
||
|
if ($cfg['mimetype'] === null) {
|
||
|
$cfg['mimetype'] = (new finfo(FILEINFO_MIME))->file($path);
|
||
|
if ($cfg['mimetype'] === false) {
|
||
|
self::page404();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
header("X-Sendfile: $path");
|
||
|
header("Content-type: {$cfg['mimetype']}");
|
||
|
if ($cfg['attachment'] !== null) {
|
||
|
header("Content-Disposition: attachment; filename={$cfg['attachment']}");
|
||
|
}
|
||
|
die();
|
||
|
}
|
||
|
|
||
|
public static function echofile($echo_func, $cfg = []) {
|
||
|
$cfg += [
|
||
|
'mimetype' => 'text/plain',
|
||
|
'attachment' => null
|
||
|
];
|
||
|
|
||
|
header("Content-type: {$cfg['mimetype']}");
|
||
|
if ($cfg['attachment'] !== null) {
|
||
|
header("Content-Disposition: attachment; filename={$cfg['attachment']}");
|
||
|
}
|
||
|
$echo_func();
|
||
|
die();
|
||
|
}
|
||
|
}
|