public在PHP,public.php

/**

* @copyright Copyright (c) 2016, ownCloud, Inc.

*

* @author Björn Schießle

* @author Christopher Schäpers

* @author Joas Schilling

* @author Jörn Friedrich Dreyer

* @author Lukas Reschke

* @author Maxence Lange

* @author Morris Jobke

* @author Robin Appelman

* @author Roeland Jago Douma

* @author Thomas Müller

* @author Vincent Petry

*

* @license AGPL-3.0

*

* This code is free software: you can redistribute it and/or modify

* it under the terms of the GNU Affero General Public License, version 3,

* as published by the Free Software Foundation.

*

* This program is distributed in the hope that it will be useful,

* but WITHOUT ANY WARRANTY; without even the implied warranty of

* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

* GNU Affero General Public License for more details.

*

* You should have received a copy of the GNU Affero General Public License, version 3,

* along with this program. If not, see

*

*/

require_once __DIR__ . '/lib/versioncheck.php';

try {

require_once __DIR__ . '/lib/base.php';

if (\OCP\Util::needUpgrade()) {

// since the behavior of apps or remotes are unpredictable during

// an upgrade, return a 503 directly

OC_Template::printErrorPage('Service unavailable', '', 503);

exit;

}

OC::checkMaintenanceMode();

$request = \OC::$server->getRequest();

$pathInfo = $request->getPathInfo();

if (!$pathInfo && $request->getParam('service', '') === '') {

http_response_code(404);

exit;

} elseif ($request->getParam('service', '')) {

$service = $request->getParam('service', '');

} else {

$pathInfo = trim($pathInfo, '/');

list($service) = explode('/', $pathInfo);

}

$file = \OC::$server->getConfig()->getAppValue('core', 'public_' . strip_tags($service));

if ($file === '') {

http_response_code(404);

exit;

}

$parts = explode('/', $file, 2);

$app = $parts[0];

// Load all required applications

\OC::$REQUESTEDAPP = $app;

OC_App::loadApps(array('authentication'));

OC_App::loadApps(array('filesystem', 'logging'));

if (!\OC::$server->getAppManager()->isInstalled($app)) {

http_response_code(404);

exit;

}

OC_App::loadApp($app);

OC_User::setIncognitoMode(true);

$baseuri = OC::$WEBROOT . '/public.php/' . $service . '/';

require_once OC_App::getAppPath($app) . '/' . $parts[1];

} catch (Exception $ex) {

$status = 500;

if ($ex instanceof \OC\ServiceUnavailableException) {

$status = 503;

}

//show the user a detailed error page

\OC::$server->getLogger()->logException($ex, ['app' => 'public']);

OC_Template::printExceptionErrorPage($ex, $status);

} catch (Error $ex) {

//show the user a detailed error page

\OC::$server->getLogger()->logException($ex, ['app' => 'public']);

OC_Template::printExceptionErrorPage($ex, 500);

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值