OCA\Richdocuments\Controller\DocumentController::wopiGetFile PHP Method

wopiGetFile() public method

public wopiGetFile ( $fileId )
    public function wopiGetFile($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 contents of file {fileId}, version {version} by token {token}.', ['app' => $this->appName, 'fileId' => $fileId, 'version' => $version, 'token' => $token]);
        $row = new Db\Wopi();
        $row->loadBy('token', $token);
        //TODO: Support X-WOPIMaxExpectedSize header.
        $res = $row->getPathForToken($fileId, $version, $token);
        $ownerid = $res['owner'];
        // Login the user to see his mount locations
        $this->loginUser($ownerid);
        $filename = '';
        // If some previous version is requested, fetch it from Files_Version app
        if ($version !== '0') {
            \OCP\JSON::checkAppEnabled('files_versions');
            // Setup the FS
            \OC_Util::tearDownFS();
            \OC_Util::setupFS($ownerid, '/' . $ownerid . '/files');
            list($ownerid, $filename) = \OCA\Files_Versions\Storage::getUidAndFilename($res['path']);
            $filename = '/files_versions/' . $filename . '.v' . $version;
            \OC_Util::tearDownFS();
        } else {
            $filename = '/files' . $res['path'];
        }
        // Close the session created for user login
        \OC::$server->getSession()->close();
        return new DownloadResponse($this->request, $ownerid, $filename);
    }