Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Alexey Sedykh                        2:5079/32.72   09 Jan 2001  14:17:18
 To : All
 Subject : help
 -------------------------------------------------------------------------------- 
 
 Имеется скpипт upload'а(см. ниже)... надо поставить запpет на заливание файлов, 
 пpевышающих опpеделенный pазмеp! помогите плиз!
 
 -----------
 
 #!/usr/local/bin/perl
 
 use locale;
 print "Content-type:  text/html\n\n";
 
 $imagedir="../www/images";
 
 $content_type = $ENV{'CONTENT_TYPE'};
 binmode STDIN;
 read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
 if ((!$content_type) || ($content_type =~ m#^multipart/form-data#)){
 ($boundary = $content_type) =~ s/^.*boundary=(.*)$/\1/;
 @pairs = split(/--$boundary/, $buffer);
 @pairs = splice(@pairs,1,$#pairs-1);
 for $part (@pairs)
 {
 ($dump,$fline,$value) = split(/\r\n/,$part,3);
 next if $fline =~ /filename=\"\"/;
 $fline =~ s/^Content-Disposition: form-data; //;
 (@columns) = split(/;\s+/, $fline);
 ($name = $columns[0]) =~ s/^name="([^"]+)"$/\1/g;
 
 if ($#columns > 0)
 {
 if ($value =~ /^Content-Type:/)
 {
 ($dump,$dump,$value) = split(/\r\n/,$value,3);
 }
 else {($dump,$value) = split(/\r\n/,$value,2);}}
 else {($dump,$value) = split(/\r\n/,$value,2);
 if (grep(/^$name$/, keys(%CGI))) {
 if (@{$FORM{$name}} > 0) {
 push(@{$FORM{$name}}, $value);}
 else {
 $arrvalue = $FORM{$name};
 undef $FORM{$name};
 $FORM{$name}[0] = $arrvalue;
 push(@{$FORM{$name}}, $value);}}
 else {
 next if $value =~ /^\s*$/;
 $FORM{$name} = $value;}
 next;}
 $FORM{$name} = $value;}}
 else{
 @pairs2 = split(/&/, $buffer);
 foreach $pair2 (@pairs2)
 {
 ($name2, $value2) = split(/=/, $pair2);
 $value2 =~ tr/+/ /;
 $value2 =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
 $value2 =~ s/<!--(.|\n)*-->//g;
 $input{$name2} = $value2;
 }}
 
 $base="../www/images/";
 chdir($base);
 $upfile = $FORM{'upfile'};
 $extension = $FORM{'extension'};
 $discript = $FORM{'discript'};
 $name = $FORM{'name'};
 $email = $FORM{'email'};
 
 if (length($upfile) < 5)
 {
 print "<font size=+3>A gde je fail?</font>";
 print "<HTML>";
 print "<HEAD>";
 print "<META HTTP-EQUIV='refresh' CONTENT='2;URL=$ENV{HTTP_REFERER}'>";
 print "</HEAD>";
 print "</HTML>";
 return false;
 }
 opendir(DIR,"/$imagedir");
 @files=grep(/inf/,readdir(DIR));
 closedir(DIR);
 $SIZE=@files;
 $kolvo=int $SIZE;
 $kolvo=$kolvo+1;
 
 # это(ниже) делается потомy что все каpтинки имеют имя файла види: 0010.jpg...
 # т.е. поpядковый номеp...
 
 if (length($kolvo)==1)
 {
 $upname="000$kolvo.$extension";
 }
 
 if (length($kolvo)==2)
 {
 $upname="00$kolvo.$extension";
 }
 
 if (length($kolvo)==3)
 {
 $upname="0$kolvo.$extension";
 }
 
 if (length($kolvo)==4)
 {
 $upname="$kolvo.$extension";
 }
 
 $filename = $upname;
 open(FILE, ">$filename");
 binmode FILE;
 print FILE $upfile;
 close FILE;
 
 @path=split(/\./,$upname);
 $infname=$path[0];
 $infname="$infname\.inf";
 
 open(FILE,">$infname");
 print FILE "$discript\n";
 print FILE "$name\n";
 print FILE "$email\n";
 print FILE "0\n";
 print FILE "$filename";
 close(FILE);
 
 print "<HTML>";
 print "<HEAD>";
 print "<META HTTP-EQUIV='refresh' CONTENT='3;URL=http://localhost/index.html'>";
 print "</HEAD>";
 print "<BODY>";
 print "<b>Thank you!</b>";
 print "<BODY>";
 print "</HTML>";
 
 ---------------
        /*ДДДДДДДДДДДДДДДД*/ _Bye, all!_ /*ДДДДДДДД*/
 
 --- CHAINIK v.3.14
  * Origin: Раньше была мистика, а тепеpь статистика! (2:5079/32.72)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 help   Alexey Sedykh   09 Jan 2001 14:17:18 
 Re: help   Artem Chuprina   15 Jan 2001 12:21:35 
Архивное /ru.cgi.perl/160983a5b1092.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional