发信人: tanshuai()
整理人: workingnow(2002-10-30 13:48:53), 站内信件
|
【 在 xd2956 (老邪) 的大作中提到: 】
: 下载的WEBMAIL没有附件功能,我想修改...
: 请问如何实现..谢谢各位大虾
#!/usr/bin/perl
BEGIN {
$SAVE_DIRECTORY = "/var/www/htdocs/wwwroot/mp3";
$MAXIMUM_UPLOAD = 7340032;
$ALLOW_INDEX = 0;
$SUCCESS_LOCATION = "http://ts.cncenter.com/upload/finish.htm"
$| = 1;
chop $SAVE_DIRECTORY if ($SAVE_DIRECTORY =~ /\/$/);
use CGI qw(:standard);
$query = new CGI;
if ( (!(-e $SAVE_DIRECTORY)) ||
(!(-W $SAVE_DIRECTORY)) ||
(!(-d $SAVE_DIRECTORY)) ) {
print header;
print <<__END_OF_HTML_CODE__;
<HTML>
<HEAD>
<TITLE>错误的目录</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H1>目录有问题</H1>
<HR SIZE=1>
<CENTER><a href="/">返回主页</CENTER>
</BODY>
</HTML>
__END_OF_HTML_CODE__
exit;
}
foreach $key (sort {$a <=> $b} $query->param()) {
next if ($key =~ /^\s*$/);
next if ($query->param($key) =~ /^\s*$/);
next if ($key !~ /^file-to-upload-(\d+)$/);
$Number = $1;
if ($query->param($key) =~ /([^\/\\]+)$/) {
$Filename = $1;
$Filename =~ s/^\.+//;
$File_Handle = $query->param($key);
if (!$ALLOW_INDEX && $Filename =~ /^index/i) {
print header;
print <<__END_OF_HTML_CODE__;
<HTML>
<HEAD>
<TITLE>Error: Filename Problem</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
</HTML>
__END_OF_HTML_CODE__
exit;
}
} else {
$FILENAME_IN_QUESTION = $query->param($key);
print header;
print <<__END_OF_HTML_CODE__;
<HTML>
<HEAD>
<TITLE>文件出问题</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<p>文件出问题!!
<center><a href=/>返回</center>
</BODY>
</HTML>
__END_OF_HTML_CODE__
exit;
}
if (!open(OUTFILE, ">$SAVE_DIRECTORY\/$Filename")) {
print "Content-type: text/plain\n\n";
print "-------------------------\n";
print "错误:\n";
print "-------------------------\n";
print "文件: $SAVE_DIRECTORY\/$Filename\n";
print "-------------------------\n";
print "打开文件写时出错\n";
#print "for Writing.\n\n";
print"<center><a href=/>返回</center>";
exit;
}
undef $BytesRead;
undef $Buffer;
while ($Bytes = read($File_Handle,$Buffer,1024)) {
$BytesRead += $Bytes;
print OUTFILE $Buffer;
}
push(@Files_Written, "$SAVE_DIRECTORY\/$Filename");
$TOTAL_BYTES += $BytesRead;
$Confirmation{$File_Handle} = $BytesRead;
close($File_Handle);
close(OUTFILE);
chmod (0666, "$SAVE_DIRECTORY\/$Filename");
}
$FILES_UPLOADED = scalar(keys(%Confirmation));
if ($TOTAL_BYTES > $MAXIMUM_UPLOAD && $MAXIMUM_UPLOAD > 0) {
foreach $File (@Files_Written) {
unlink $File;
}
print header;
print <<__END_OF_HTML_CODE__;
<HTML>
<HEAD>
<TITLE>错误</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H1>文件超过了7M上限</H1>
<P>
<P>
<HR SIZE=1>
<CENTER><A HREF="/">返回主页</CENTER>
</BODY>
</HTML>
__END_OF_HTML_CODE__
exit;
}
if ($SUCCESS_LOCATION !~ /^\s*$/) {
print $query->redirect($SUCCESS_LOCATION);
} else {
print header;
print <<__END_OF_HTML_CODE__;
<HTML>
<HEAD>
<TITLE>上传完成!</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H1>上传完成!</H1>
<P>
__END_OF_HTML_CODE__
foreach $key (keys (%Confirmation)) {
print "$key - $Confirmation{$key} bytes\n";
}
print <<__END_OF_HTML_CODE__;
</PRE>
<P>
Thank you for using the File Upload! system.
<P>
<HR SIZE=1>
</HTML>
__END_OF_HTML_CODE__
exit;
}
-- CGI版主(BM) —— ☆★天水★☆ №↑1.
☆网络世界,你我共行,创出新意,创出未来,创出新世界!★
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
□E-Mail: [email protected] 【Http://ts.cncenter.com】
〓I Seek You!ICQ UIN : 25856530 (AOL) OICQ ID:66552
'''''''''''''''''''''''''''''''''''''''''''''''''''''
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.110.24.154]
|
|