www.pudn.com > bbs3000afree.zip > portrait.cgi


#!/usr/bin/perl 
#------------------------------------------------------# 
#         本程序为Yuzi工作室提供        # 
#        Yuzi论坛3000(BBS3000)v4.00      # 
#------------------------------------------------------# 
$cgipa=".";  # CGI程序文件的绝对路径 
$maxphoto = 2000;  #上传头像文件大小限制 
###################### 
## 以下部分不需修改 ## 
###################### 
require "$cgipa/setup.cgi"; 
&GetCookies; 
if($Cookies{username}){open(PSD,"$filepath/yhzl/$Cookies{username}.cgi")||&errorview("对不起,此用户名还没有注册!");$liness=;close(PSD);($password)=split(/\t/,$liness);if($password ne $Cookies{password}){&errorview("对不起,您的密码错误!");}} 
if($Cookies{username} eq ""){print "Content-type: text/html\n\n";exit;} 
if ($username eq ""){$username=$Cookies{username}}; 
open(PSD,"$filepath/yhzl/$username.cgi"); 
$line=; 
close(PSD); 
($rdpassword,$rdname,$rdmail,$rdhome,$rlast,$rdqm,$rdsex,$rdwork,$rdcity,$rdlove,$rfy,$rhf,$tu,$jiao,$iewin,$QQ,$photo)=split(/\t/,$line); 
if($photo eq ""){ 
print "Content-type: text/html\n\n"; 
print < 
EOF 
}else{ 
if (-e "$ImgDir/portrait/$username.gif") {$ttt="$ImgurlDir/$tu.gif"}else{$ttt="$imagurl/face/$tu.gif"}} 
binmode(STDIN); 
read (STDIN,$postinfo,$ENV{'CONTENT_LENGTH'}); 
$temps=substr($postinfo,0,80); 
$temps=~/(.*)\n/; 
$bound=$1; 
@fields=split(/$bound/,$postinfo); 
foreach $field(@fields) 
{ 
($name,$value)=split(/\x0d\n\x0d\n/,$field); 
if (($name=~/Content-Disposition/)&&($value ne '')) 
{chomp($value); 
$value=~s/(\x0d)$//g; 
$name=~s/Content-Disposition: form-data; //g; 
($formdata,$filedata)=split(/ /,$name); 
($formvalue,$formname)=split(/=/,$formdata); 
$formname=~s/^\"//; 
$formname=~s/\;$//; 
$formname=~s/\"$//; 
if ($filedata ne '') 
{ 
($filetitle,$filename)=split(/=/,$filedata); 
$filename=~s/\n+Content-Type://g; 
$filename=~s/^\"//; 
$filename=~s/\"//; 
$filevalue = $value; 
$FORMFILE{$filename}=$value; 
} 
else { 
$value=~s/(.*)\n(.*)/$1/; 
$value=~s/\r//; 
$FORM{$formname}=$value; 
}} 
} 
@querys = split(/&/, $ENV{'QUERY_STRING'}); 
foreach $query (@querys) { 
($name, $value) = split(/=/, $query); 
$FORM{$name} = $value; 
} 
if ($FORM{'work'} ne "") 
{ 
$work=$FORM{'work'}; 
$name=$FORM{'name'}; 
} 
if ($work eq "posted") 
{ 
&posted; 
exit; 
} 
&css; 
print " 




个人头像上传处

、请点取下面的“浏览”按键选择您要上传的图片
(图片尺寸:32 X 32象素 GIF、JPG格式):




您目前的头像
、选择好您要上传的图片后,请按下面的确认键开
始上传...
、对已上传头像不满意的用户,可以重新上传新照
片覆盖原照,具体操作与首次 上传一致。
返 回
\n\n"; sub posted { $photo=&uploadfiles($filename); print "Content-type: text/html\n\n"; print " 您已经成功地将您的头像上传到服务器中,请稍候,系统将自动返回.....

如果系统没有反应,请点击这里返回!\n\n"; } sub uploadfiles { $photo =1; local($uploadfile)=$_[0]; if ($uploadfile=~ /([^\/\\]+)$/) { $Filename = $1; $Filename =~s/^\.+//; } $filelen=length($filevalue); $Filename=~tr/A-Z/a-z/; ($lujin,$jpg)=split(/\./,$Filename); $jpg =~s/\r//g; if(($jpg ne "jpeg")&&($jpg ne "jpg")&&($jpg ne "")&&($jpg ne "gif")){&errorview("对不起,您的头像必须是GIF或者JPG格式的文件!");} if ($filelen > $maxphoto){&errorview("上传头像文件超长!您上传的头像文件长度是 $filelen byte, 本站接受的头像最大长度是 $maxphoto byte!");exit;} if ($photo) { open(OUTFILE, ">$ImgDir/portrait/$username.gif") || &errorview("上传文件错误,不能创建文件。

1、请检查存放图片文件目录的绝对路径!
2、请把image目录属性改成777。"); binmode (OUTFILE); print OUTFILE $filevalue; close(OUTFILE); chmod("$ImgDir/portrait/$username.gif",0777); open(PSD,"$filepath/yhzl/$username.cgi"); $line=; close(PSD); ($rdpassword,$rusername,$rdmail,$rdhome,$rlast,$rdqm,$rdsex,$rdwork,$rdcity,$rdlove,$rfy,$rhf,$tu,$jiao,$iewin,$QQ,$photo,$rating,$levelname,$level,$levelstar,$lastlytime,$lastlytopic,$realname,$birthday,$shengxiao,$blood,$constellation,$character,$belief,$marital,$education,$college)=split(/\t/,$line); $tu="../portrait/$photo"; open(PSD,">$filepath/yhzl/$username.cgi"); print PSD $rdpassword."\t".$username."\t".$rdmail."\t".$rdhome."\t".$rlast."\t".$rdqm."\t".$rdsex."\t".$rdwork."\t".$rdcity."\t".$rdlove."\t".$rfy."\t".$rhf."\t".$tu."\t".$jiao."\t".$ENV{'HTTP_USER_AGENT'}."\t".$QQ."\t".$photo."\t".$rating."\t".$levelname."\t".$level."\t".$levelstar."\t".$lastlytime."\t"."$lastlytopic\t".$realname."\t".$birthday."\t".$shengxiao."\t".$blood."\t".$constellation."\t".$character."\t".$belief."\t".$marital."\t".$education."\t".$college; close(PSD); } return $filelen; } ######################### END OF SCRIPT #########################