public function wopiCheckFileInfo($fileId)
{
$token = $this->request->getParam('access_token');
$arr = explode('_', $fileId, 2);
$version = '0';
if (count($arr) == 2) {
$fileId = $arr[0];
$version = $arr[1];
}
\OC::$server->getLogger()->debug('Getting info about file {fileId}, version {version} by token {token}.', ['app' => $this->appName, 'fileId' => $fileId, 'version' => $version, 'token' => $token]);
$row = new Db\Wopi();
$row->loadBy('token', $token);
$res = $row->getPathForToken($fileId, $version, $token);
if ($res == false || http_response_code() != 200) {
return false;
}
// Login the user to see his mount locations
$this->loginUser($res['owner']);
$view = new \OC\Files\View('/' . $res['owner'] . '/files');
$info = $view->getFileInfo($res['path']);
// Close the session created for user login
\OC::$server->getSession()->close();
if (!$info) {
http_response_code(404);
return false;
}
$editorName = \OC::$server->getUserManager()->get($res['editor'])->getDisplayName();
\OC::$server->getLogger()->debug('File info: {info}.', ['app' => $this->appName, 'info' => $info]);
return array('BaseFileName' => $info['name'], 'Size' => $info['size'], 'Version' => $version, 'UserId' => $res['editor'], 'UserFriendlyName' => $editorName);
}