📄 index.php
字号:
$files['ctime'], $files['rights'], $files['icon'], $files['link'], $files['filename'], $files['ownername'], $files['groupname'] ); // RENDERING FILEPANEL $out = ''; for ($i = 0; $i < count($files['filename']); $i++) { $showname = $files['filename'][$i]; if (strlen($showname) > $default['PANEL_FILENAME_MAXLENGTH']) $showname = substr($files['filename'][$i],0, $default['PANEL_FILENAME_MAXLENGTH']) . $default['PANEL_FILENAME_APPEND'];// ($files['isdotdir1'][$i] ? "<INPUT TYPE=CHECKBOX NAME='cbxall' ONCLICK='fillboxes($sideflag)'>" : '') . $out .= '<TR '.($i % 2 == 0 ? 'CLASS="alternate" ' : '').'>'. NL . ' <TD CLASS="ftpborderright" WIDTH="25">' . (!$files['isdotdir'][$i] ? "<INPUT TYPE=CHECKBOX NAME='cbx$sideflag$i' VALUE='".htmlspecialchars($files['filename'][$i],ENT_QUOTES)."'>" : '') . ' '. '</TD>' . NL . ' <TD CLASS="ftpborderright" width="25">' . $files['icon'][$i] . '</TD>' . NL . ' <TD CLASS="ftpborderright" width="50%">' . "<A class='mainfileview' TITLE='".$files['filename'][$i]."' HREF='".$files['link'][$i]."'>" . ($files['dir'][$i] ? '<B>'.$showname.'</B>' : $showname) . "</A>" . '</TD>' . NL . ' <TD CLASS="ftpborderright" ALIGN=RIGHT>' . (!$files['isdotdir'][$i] && !$files['dir'][$i] ? number_format($files['size'][$i]) : SP) . '</TD>' . NL . ' <TD CLASS="ftpsmall ftpborderright" ALIGN=CENTER TITLE="created: '. $files['ctime'][$i].', last access: '.$files['atime'][$i].'">' . $files['mtime'][$i] . '</TD>' . NL. '<TD WIDTH=20 CLASS="mono" title="'.$files['ownername'][$i].' '.$files['groupname'][$i].'">' . $files['rights'][$i] . '</TD>' . NL . '</TR>' . NL; } // APPLY HEADER AND FOOTER ON THE CURRENT PANEL ----------------------------- $sortdir = $sortdir == 4 ? 'asc' : 'desc'; $sortdir0 = $sortdir0 == 4 ? 'asc' : 'desc'; //$sortdir1 = $sortdir1 == 4 ? 'asc' : 'desc'; $sortlink ='<A HREF="'.htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES).AMP.'lt='.str_replace("%","%%", urlencode($dirleft)). AMP; if ($sideflag==0) $sortlink .= 'page=ftp'.AMP. 'sortby0=%s'.AMP. 'sortdir0=%s">%s</A>'; else $sortlink .= 'sortby0='. $sortby0 .AMP. 'sortdir0='. $sortdir0.AMP. 'page=ftp'; $out = '<TR CLASS="headerfooter">'. NL . '<TD CLASS="ftpborderright ftpborderhoriz">'.SP.'</TD>'.NL. '<TD CLASS="ftpborderright ftpborderhoriz">'.SP.'</TD>'.NL. '<TD CLASS="ftpborderright ftpborderhoriz">'.STR_FILENAME.' '. sprintf($sortlink,'name', 'asc', sprintf(SORT_UP, STR_FILENAME)). sprintf($sortlink,'name', 'desc',sprintf(SORT_DN, STR_FILENAME)).'</TD>'.NL. '<TD CLASS="ftpborderright ftpborderhoriz">'.STR_FILESIZE. sprintf($sortlink,'size', 'asc', sprintf(SORT_UP, STR_FILESIZE)). sprintf($sortlink,'size', 'desc',sprintf(SORT_DN, STR_FILESIZE)).'</TD>'.NL. '<TD CLASS="ftpborderright ftpborderhoriz">'.STR_LASTMODIFIED.' '. sprintf($sortlink,'mtime','asc', sprintf(SORT_UP, STR_LASTMODIFIED)). sprintf($sortlink,'mtime','desc',sprintf(SORT_DN, STR_LASTMODIFIED)).'</TD>'.NL. '<TD CLASS="ftpborderhoriz">'.SP.'</TD>'.NL. '</TR>'.NL. $out . '<TR CLASS="headerfooter">'. NL . '<TD CLASS="ftpborderright ftpborderhoriz">'.SP.'</TD>'.NL. '<TD COLSPAN=3 CLASS="ftpborderright ftpborderhoriz" ALIGN=CENTER>'. sprintf(STR_SUM, number_format( $sum['size'] ), $sum['files'] ). '</TD>'.NL. '<TD CLASS="ftpborderright ftpborderhoriz">'.SP.'</TD>'.NL. '<TD CLASS="ftpborderhoriz">'.SP.'</TD>'.NL. '</TR>'.NL; // hunt and replace the image of the current order to an inverted image // by the link around it // (sort_up.gif => sort_inv_up.gif, sort_dn.gif => sort_inv_dn.gif ) // [it's much easier than placing dozens of 'if' or ' ? : ' structures // in the previous block] $regexp = "(<A.*sortby".$sideflag."=".$sortby.".*sortdir".$sideflag."=".$sortdir.".*SRC=.*)sort_(.*) (.*<\/A>)"; $out = preg_replace("/$regexp/U","\\1sort_inv_\\2 \\3",$out); return $out;}// ----------------------------------------------------------------------------function display() {global $dirleft, $message, $str_copy; $hiddenparameters = "<INPUT TYPE='hidden' NAME='lt' VALUE= '".htmlspecialchars($dirleft, ENT_QUOTES)."'>".NL. "<INPUT TYPE='hidden' NAME='page' VALUE= 'ftp'>".NL. "<INPUT TYPE='hidden' NAME='todo' VALUE= ''>".NL. // getparams(Array('sortby0','sortdir0','sortby1','sortdir1')); getparams(Array('sortby0','sortdir0')); $columnskeleton = '<TD VALIGN=TOP WIDTH=50%%>'.NL. ' <TABLE CELLPADDING=0 CELLSPACING=0 WIDTH=100%%>'.NL. ' <CAPTION CLASS="naviline">'.STR_FILE_UPLOAD_NAVI_HINT.': %s</CAPTION>'.NL. '%s'. '</TABLE>'.NL. '</TD>'; $menu = indent( '<CENTER>' . NL . '' . NL . '<TABLE CELLSPACING=5 CELLPADDING=0 BORDER=0>' . NL . '<TR>' . '<TD>'.'<A HREF="#%s">%s</A>'.'</TD>'. '<TD ALIGN=RIGHT>'. ' <INPUT TYPE="button" CLASS="button" NAME="submit_button" onclick="submit_todo(\'rename_form\')" VALUE="'.STR_RENAME.'">'.NL. ' <INPUT TYPE="button" CLASS="button" NAME="submit_button" onclick="submit_todo(\'copy_form\')" VALUE="'.$str_copy.'">'.NL. ' <INPUT TYPE="button" CLASS="button" NAME="submit_button" onclick="submit_todo(\'delete\')" VALUE="'.STR_DELETE.'">'.NL. ' <INPUT TYPE="button" CLASS="button" NAME="submit_button" onclick="submit_todo(\'mkdir_form\')" VALUE="'.STR_MKDIR.'">'.NL. (ini_get('file_uploads') ? ' <INPUT TYPE="button" CLASS="button" NAME="submit_button" onclick="submit_todo(\'upload_form\')" VALUE="'.STR_FILE_UPLOAD_MAIN.'">'.NL : ''). '</TD>'. '<TD>'.'<A HREF="#%s">%s</A>'.'</TD>'. '</TR>'. '</TABLE>'. NL. '</CENTER>'.NL, ' '); define('DISPLAY_ERRORS', 1);?><script language="JavaScript" type="text/javascript">function submit_todo(var_todo){ document.theform.todo.value = var_todo; document.theform.submit();}</script><?php echo pageheader() . (strlen($message) ? sprintf($message, $hiddenparameters) . NL : '') . "<FORM METHOD=GET NAME='theform' ACTION='".htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES)."'>" . NL . $hiddenparameters . NL . sprintf($menu,'bottom',STR_BOTTOM,'bottom',STR_BOTTOM) . NL . " <TABLE WIDTH='100%' CELLPADDING=0 CELLSPACING=0 CLASS='blackborder'>".NL. " <TR>" . NL. indent( sprintf( $columnskeleton, navigatorline($dirleft, 0), indent(panel($dirleft, 0),' ')), ' ') . NL . " </TR>". NL . " </TABLE>". NL . sprintf($menu,'top',STR_TOP,'top',STR_TOP) . NL . "</FORM>" . NL . pagefooter();}// ----------------------------------------------------------------------------function driveletters($sideflag) {global $default, $dirleft, $sortpass; // drive selector should be used under Windows only $out = ''; if (eregi('^.*WIN.*$',PHP_OS)) { $drives = $default['DRIVES']; if (!count($drives)) { // setup an array containing possible drive letters: A-Z for ($i='A'; $i<'Z'; $i = chr(ord($i) + 1)) $possible_drives[] = $i; // grep drive letters to scan specified by config foreach ($default['DRIVES_TO_SCAN'] as $value) { $driveinterval = preg_grep('/['.$value.']/', $possible_drives); foreach ($driveinterval as $drivetoscan) $drives[] = $drivetoscan; } } foreach ($drives as $key=>$value) if (!is_dir($value.':')) unset($drives[$key]); asort($drives); $out .= '<BR>'.STR_FILE_UPLOAD_DRIVES.''; foreach ($drives as $value) { $value = strtolower($value) . ':'; $out .='<A CLASS="naviline" HREF="'.htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES).'?'. 'lt='.($sideflag==0 ? $value : $dirleft) . AMP.'page=ftp'.AMP. $sortpass . '">'.$value .'</A> '; } } return $out;}// ----------------------------------------------------------------------------function navigatorline($d, $sd) {global $sortpass;$p = "<A class='naviline' HREF='".htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES)."?lt=".$d. AMP . "page=ftp'>%s</A>";if (ereg('^([a-zA-Z]?:?\/?)$', $d, $r)){ $d = $r[1]; return sprintf($p, $d);}else{ $b = basename($d); $d = fixed_dirname($d); $x = $d=='/' ? $d . $b : "$d/$b"; return navigatorline($d, $sd) . ($d=='/' ? '' : '/') . sprintf($p, $b);}}// ----------------------------------------------------------------------------function filelist() { $f = Array(); foreach($_REQUEST as $k=>$v) { if (ereg('^cbx([01]{1})[0-9]+$', $k, $results)) { $f[$results[1]][] = $v; } } return $f;}// ----------------------------------------------------------------------------function fixed_dirname($s) { $s = _r(dirname($s)); if (ereg("([A-Za-z]:)/$", $s, $r)) $s = $r[1]; return $s;}// ----------------------------------------------------------------------------function _r($s) { return str_replace('\\', '/', $s);}// ----------------------------------------------------------------------------function indent($string, $indent) { return preg_replace('/^(.*)$/m',$indent."\\1",$string);}// ----------------------------------------------------------------------------function pageheader() {global $default; return '<A NAME="top"></A>'.NL;}// ----------------------------------------------------------------------------function pagefooter() { return '<A NAME="bottom"></A>'.NL;}// ----------------------------------------------------------------------------function getparams ( // $params = Array('lt','rt','sortby0','sortdir0','sortby1','sortdir1','f') $params = Array('lt','sortby0','sortdir0','f') ) { $out = ''; foreach ($params as $value) { if (isset($_REQUEST[$value])) $out .= '<INPUT TYPE=HIDDEN NAME="'.$value.'" VALUE="'.htmlspecialchars($_REQUEST[$value], ENT_QUOTES).'">' . NL; } return $out;}/*** found on http://ch.php.net/manual/en/function.fileperms.php* @author flo*/function get_readable_fileperms($file){ $perms = fileperms($file); $info = ''; if (($perms & 0xC000) == 0xC000) { // Socket $info .= 's'; } elseif (($perms & 0xA000) == 0xA000) { // Symbolic Link $info .= 'l'; } elseif (($perms & 0x8000) == 0x8000) { // Regular $info .= '-'; } elseif (($perms & 0x6000) == 0x6000) { // Block special $info .= 'b'; } elseif (($perms & 0x4000) == 0x4000) { // Directory $info .= 'd'; } elseif (($perms & 0x2000) == 0x2000) { // Character special $info .= 'c'; } elseif (($perms & 0x1000) == 0x1000) { // FIFO pipe $info .= 'p'; } else { // Unknown $info .= 'u'; } // Owner $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); // Group $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); // World $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info;}?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -