⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webftppages.pm

📁 本文件为Web-FTP的实现源代码 是cgi编程 使用perl为主 本软件适用于linux下
💻 PM
📖 第 1 页 / 共 3 页
字号:
sub uploadScreen {  my $self = shift;  \qq`<HTML>  <HEAD>    <TITLE>Web-FTP $self->{VERSION}: $self->{conf}{lang}{file_upload} $self->{HOSTNAME}</TITLE>  </HEAD>  <BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}">    <H3>web-FTP $self->{VERSION}: $self->{conf}{lang}{file_upload}        $self->{HOSTNAME}:$self->{CURRENTDIR}</H3>    <FORM ENCTYPE="multipart/form-data" ACTION="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/POST" METHOD=POST>      <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50>      <BR>      <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50>      <BR>      <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50>      <BR>      <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50>      <BR>      <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50>      <BR>      <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50>      <BR>      <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50>      <BR>      <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50>      <BR>      <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50>      <BR>      <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50>      <BR>      <INPUT TYPE=SUBMIT NAME="action" VALUE="$self->{conf}{lang}{upload}">      &nbsp;&nbsp;      <A HREF="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/MAIN"><FONT SIZE=+2>$self->{conf}{lang}{cancel}</FONT></A>    </FORM>  </BODY></HTML>`}sub HEAD {    my $self = shift;    my $head = qq`<H2><A TARGET="_top" HREF="http://www.web-ftp.org">Web-FTP</A> $self->{VERSION} - $self->{conf}{lang}{connected_to} <B>$self->{HOSTNAME}</B></H2>`;        if(-f qq'$self->{conf}{base}/templates/header') {	open(D, qq'$self->{conf}{base}/templates/header') or die $!;	local $/;	$head = <D>;	close D;	return \$head if $head =~ /<[Hh][Tt][Mm][Ll]\s*>/;    }    \qq`<HTML><BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}">$head</BODY></HTML>`;}sub FOOT {    my $self = shift;    \qq`<HTML><BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}">${\($self->credits())}</BODY></HTML>`;}sub credits {    my $self = shift;    if(-f qq'$self->{conf}{base}/templates/footer') {	open(D, qq'$self->{conf}{base}/templates/footer') or die $!;	local $/;	my $foot = <D>;	close D;	return $foot;    }    qq`<TABLE CELLPADDING=0 CELLSPACING=0 WIDTH="100%"><TR><TD>$self->{conf}{lang}{maintained_by} <A HREF="http://www.web-ftp.org/contact.html">Anthony Ball</A> </TD><TD ALIGN=RIGHT>&copy; 2002,2003</TD></TR></TABLE>`;}sub FILES {    my $self = shift;    my $OUT = qq`<HTML>  <BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}"><BASEFONT SIZE=2><FORM TARGET=MAIN ENCTYPE="multipart/form-data" ACTION="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/POST" METHOD=POST><INPUT TYPE=HIDDEN NAME=DirectoriesList VALUE=""><INPUT TYPE=HIDDEN NAME=action VALUE=""><INPUT TYPE=HIDDEN NAME=tarname VALUE=""><SCRIPT LANGUAGE=JAVASCRIPT>function tag() {  for(i=0; i<document.forms[0].length;i++) {    foo = document.forms[0].elements[i];    if(foo.name == 'Files') {      if(foo.checked) {        foo.checked = 0;      } else {        foo.checked = 1;      }    }  }}</SCRIPT><TABLE CELLPADDING=3 CELLSPACING=0 BORDER=0 WIDTH="100%">`;    $OUT .= qq`<TH><A HREF="javascript:tag()">$self->{conf}{lang}{tag_title}</A></TH>` unless $self->{conf}{hidetag};    $OUT .= qq`<TH>$self->{conf}{lang}{file_title}</TH>`;    $OUT .= qq`<TH>$self->{conf}{lang}{last_mod_title}</TH>` unless $self->{conf}{hidelastmod};    $OUT .= qq`<TH>$self->{conf}{lang}{size_title}</TH>` unless $self->{conf}{hidesize};    $OUT .= qq`<TH>$self->{conf}{lang}{owner_group_title}</TH>` unless $self->{conf}{hideowngrp};    $OUT .= qq`<TH>$self->{conf}{lang}{permissions_title}</TH>` unless $self->{conf}{hidepermissions};    $OUT .= qq`${\(join '', @{$self->{list}{FileEntries}})}</TABLE></FORM></BODY></HTML>`;    return \$OUT;}sub DIRS {    my $self = shift;    my $OUT = qq`<HTML>  <BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}"><BASEFONT SIZE=2><FORM TARGET=MAIN ENCTYPE="multipart/form-data" ACTION="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/POST" METHOD=POST><INPUT TYPE=HIDDEN NAME=ACTION VALUE=""><SCRIPT LANGUAGE=JAVASCRIPT>function tag() {  for(i=0; i<document.forms[0].length;i++) {    foo = document.forms[0].elements[i];    if(foo.name == 'Directories') {      if(foo.checked) {        foo.checked = 0;      } else {        foo.checked = 1;      }    }  }}</SCRIPT><TABLE CELLPADDING=3 CELLSPACING=0 BORDER=0 WIDTH="100%">`;    $OUT .= qq`<TH><A HREF="javascript:tag()">$self->{conf}{lang}{tag_title}</A></TH>` unless $self->{conf}{hidetag};    $OUT .= qq`<TH>$self->{conf}{lang}{dir_title}</TH>`;    $OUT .= qq`<TH>$self->{conf}{lang}{last_mod_title}</TH>` unless $self->{conf}{hidelastmod};    $OUT .= qq`<TH>$self->{conf}{lang}{size_title}</TH>` unless $self->{conf}{hidesize};    $OUT .= qq`<TH>$self->{conf}{lang}{owner_group_title}</TH>` unless $self->{conf}{hideowngrp};    $OUT .= qq`<TH>$self->{conf}{lang}{permissions_title}</TH>` unless $self->{conf}{hidepermissions};    $OUT .= qq`${\(join '', @{$self->{list}{DirEntries}})}</TABLE></FORM></BODY></HTML>`;    return \$OUT;}sub MAIN {    my $self = shift;    \qq`<HTML><HEAD><FRAMESET COLS="*" ROWS="$self->{conf}{dirsframesize},$self->{conf}{infoframesize},$self->{conf}{fileframesize}"><FRAME NAME=DIRS SRC="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/DIRS"><FRAME MARGINHEIGHT=0 MARGINWIDTH=0 NAME=PWD SRC="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/INFO"><FRAME NAME=FILES SRC="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/FILES"></FRAMESET></HTML>`;#<FRAME NAME=DIRSINFO SRC="$self->{conf}{SCRIPT}/DIRSINFO">}sub DIRSINFO {    my $self = shift;    \qq`<HTML><HEAD><FRAMESET COLS="*" ROWS="$self->{conf}{dirsframesize},$self->{conf}{infoframesize}"><FRAME NAME=DIRS SRC="$self->{conf}{SCRIPT}/DIRS"><FRAME MARGINHEIGHT=0 MARGINWIDTH=0 NAME=PWD SRC="$self->{conf}{SCRIPT}/INFO"></FRAMESET></HTML>`;}sub INFO {    my $self = shift;    my($dsf,$link);    for(split '/', $self->{CURRENTDIR}) {        $dsf .= "$_/";        $link .= qq`<A TARGET=MAIN HREF="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/CDTO?$dsf">$_/</A>`;    }    $link ||= '/';    \qq`<HTML><BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}"><TABLE WIDTH="100%"><TR><TD>$self->{conf}{lang}{index_of} $link</TD><TD ALIGN=CENTER><A TARGET=MAIN HREF="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/CDTO?%2e">$self->{conf}{lang}{refresh}</A><A HREF="#chdir">$self->{conf}{lang}{change_dir}</A></TD><TD ALIGN=RIGHT><A TARGET=MAIN HREF="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/CDTO?%2e%2e">$self->{conf}{lang}{parent_dir}</A></TD></TR><TR><TD COLSPAN=3 ALIGN=CENTER>  <P>&nbsp;  <P>&nbsp;  <P>&nbsp;  <FORM TARGET=MAIN ENCTYPE="multipart/form-data" ACTION="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/POST" METHOD=POST>    <B>$self->{conf}{lang}{directory}:</B><A NAME="chdir"> <INPUT NAME="Directories" SIZE=40><INPUT TYPE=SUBMIT VALUE="$self->{conf}{lang}{go}"></A>    <INPUT TYPE=HIDDEN NAME="action" VALUE="chdir">  </FORM></TABLE>`;}sub NAVBAR {    my $self = $_[0];    my($OUT);    $OUT = qq`<HTML><BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}"><SCRIPT LANGUAGE=JAVASCRIPT>function dtt(what) {  var i,dcnt,fcnt,dirs,foo,tarname;  dirs = '';  dcnt = fcnt = 0;  for(i=0; i<parent.MAIN.FILES.document.forms[0].length;i++) {    foo = parent.MAIN.FILES.document.forms[0].elements[i];    if(foo.name == 'Files' && foo.checked) {      fcnt++;    }  }  for(i=0; i<parent.MAIN.DIRS.document.forms[0].length;i++) {    foo = parent.MAIN.DIRS.document.forms[0].elements[i];    if(foo.name == 'Directories' && foo.checked) {      dcnt++;      if(dirs)        dirs += "\\n";      dirs += foo.value;    }  }  if(what == 'download' && (fcnt > 1 || dcnt > 0)) {    tarname = prompt('$self->{conf}{lang}{download_multiple_help}','$self->{conf}{lang}{download_multiple_default_name}');  }  if(what == 'download' && !(fcnt+dcnt)) {    alert('$self->{conf}{lang}{tag_a_directory}');    return;  }  if(dcnt + fcnt) {    parent.MAIN.FILES.document.forms[0].DirectoriesList.value = dirs;    parent.MAIN.FILES.document.forms[0].action.value = what;    parent.MAIN.FILES.document.forms[0].tarname.value = tarname;    parent.MAIN.FILES.document.forms[0].submit();  } else {    alert('$self->{conf}{lang}{tag_a_file}');  }}function edit(editor) {  var a,b,i;  a = parent.MAIN.FILES.document.forms[0];  if(a.Files.checked) {    b = a.Files.value;  }  for (i = 0; i<a.Files.length; i++) {     if(a.Files[i].checked) {       b = a.Files[i].value;       break;     }  }  if(b) {    var w = window.open('$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/EDIT?file='+b+'&editor='+editor, 'EDIT', 'toolbar=no,menubar=no,location=no,resizable=yes');    w.focus();  } else {    alert('$self->{conf}{lang}{tag_for_edit}');  } }function site() {  var foo,i;  var list = '';  for(i=0; i<parent.MAIN.FILES.document.forms[0].length;i++) {    foo = parent.MAIN.FILES.document.forms[0].elements[i];    if(foo.name == 'Files' && foo.checked) {      list += " " + foo.value;    }  }  for(i=0; i<parent.MAIN.DIRS.document.forms[0].length;i++) {    foo = parent.MAIN.DIRS.document.forms[0].elements[i];    if(foo.name == 'Directories' && foo.checked) {      list += " " + foo.value;    }  }    parent.MAIN.FILES.document.forms[0].DirectoriesList.value = prompt('$self->{conf}{lang}{enter_for_site}',unescape(list));    parent.MAIN.FILES.document.forms[0].action.value = 'site';    parent.MAIN.FILES.document.forms[0].submit();}function messages() {  window.open('$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/MESSAGES','MESSAGES', 'scrollbars=yes,toolbar=no,menubar=no,location=no,resizable=yes,width=400,height=400');}function newfile(editor) {  var a = prompt('$self->{conf}{lang}{new_file_name}', '');  if(a)     window.open('$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/EDIT?file='+a+'&editor='+editor, 'EDIT');}</SCRIPT><TABLE CELLSPACING=2 CELLPADDING=3 BGCOLOR="$self->{conf}{buttoncolor}">`;    $OUT .= qq`<TR><TD><FONT SIZE="-1"><A HREF="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/MKDIR" TARGET=MAIN>$self->{conf}{lang}{mkdir}</A></TD></TR>` unless $self->{conf}{hidemkdir};    $OUT .= qq`<TR><TD><FONT SIZE="-1"><A HREF="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/PUT"   TARGET=MAIN>$self->{conf}{lang}{upload}</A></TD></TR>` unless $self->{conf}{hideupload};    $OUT .= qq`<TR><TD><FONT SIZE="-1"><A HREF="javascript:dtt('download')">$self->{conf}{lang}{download}</A></TD></TR>` unless $self->{conf}{hidedownload};    $OUT .= qq`<TR><TD><FONT SIZE="-1"><A HREF="javascript:dtt('permissions')">$self->{conf}{lang}{permissions}</A></TD></TR>` unless $self->{conf}{hidepermbutton};    $OUT .= qq`<TR><TD><FONT SIZE="-1"><A HREF="javascript:dtt('delete')">$self->{conf}{lang}{delete}</A></TD></TR>` unless $self->{conf}{hidedelete};    $OUT .= qq`<TR><TD><FONT SIZE="-1"><A HREF="javascript:dtt('move')">$self->{conf}{lang}{move}</A></TD></TR>` unless $self->{conf}{hidemove};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -