Exemplo n.º 1
0
if ($file_id && ($res = $xoopsDB->query($query)) && $xoopsDB->getRowsNum($res)) {
    list($mime, $size, $mtime, $perm, $uid, $file) = $xoopsDB->fetchRow($res);
    if ($xelFinderMisc->readAuth($perm, $uid, $file_id)) {
        if (!$file) {
            $file = XOOPS_TRUST_PATH . '/uploads/xelfinder/' . rawurlencode(substr(XOOPS_URL, strpos(XOOPS_URL, '://') + 3)) . '_' . $mydirname . '_' . $file_id;
        } else {
            if (substr($file, 1, 1) === '/') {
                $_head = substr($file, 0, 1);
                if (strpos($file, '%') !== false) {
                    $file = dirname($file) . DIRECTORY_SEPARATOR . rawurldecode(basename($file));
                }
                switch ($_head) {
                    case 'R':
                        $file = XOOPS_ROOT_PATH . substr($file, 1);
                        break;
                    case 'T':
                        $file = XOOPS_TRUST_PATH . substr($file, 1);
                        break;
                }
            }
        }
        if (!is_file($file)) {
            $xelFinderMisc->exitOut(404);
        }
        $xelFinderMisc->output($file, $mime, $size, $mtime);
    } else {
        $xelFinderMisc->exitOut(403);
    }
} else {
    $xelFinderMisc->exitOut(404);
}