Hekt0r
написал 12 сентября 2004 года в 08:06 (1168 просмотров)
Ведет себя
как мужчина; открыл 1 тему в форуме.
А вы бы не могли поделиться исходником скрипта upload.pl или рассказать, как его написать?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
а можно встречный вопрос: чем google://script upload file perl не устраивает?
Тему это только сейчас заметил, но, как понимаю, вопрос уже решили в IRC…
И все же, Шуруп, может выложишь сырки?
А то мне тоже очень любопытно посмотреть.
Тем более что я собераюсь в ближайшем будущем изучать Perl.
Так ты вначале изучи…
Ну, основной кусок вот:
<html>
<body>
</head>
Page for uploading files to the «Trash»</a> at nixp.ru/forum/</a>.
File size limit: \~$limit Kb.
\n~;
if ($nixpl eq «Guest»){ print qq~Only registered</a> users are allowed to upload anything.
\n~; } else {
my $in=new CGI; my $action=$in->param(’a'); $action=«def» if (!$action || $action ne «up»);
if ($action eq «def»){
print qq~
<form method=«post» action=«upload.pl» name=«main» enctype=«multipart/form-data» id=«main»>
<input type=«hidden» name=«a» value=«up»>
Choose file: <input type=«file» name=«tfile»>
<input type=«submit» value=«Upload»>
</form>
~;
} elsif ($action eq «up»){
if ($ENV{’CONTENT_LENGTH’}<$limit*1024){
my $cstr; my $alright=1; my $nowtime=time;
if (open(UPF,«$ufile»)){
while($cstr=){ chomp($cstr); $cstr=~/:=:/; if ($' eq $nixpl && $nowtime-$`<180){ $alright=0; } }
close(UPF);
if (!$alright){ print «You have uploaded something just few moments ago. So, now you have to wait.\n»; } else {
my $tfile=$in->param(’tfile’); $tfile=$1 if ($tfile=~/[\\\/]([^\\\/]+)$/); my $ofile=«$udir/$nowtime.$nixpl.$tfile»;
if (open(WF,«>$ofile»)){
sleep 1 unless(flock(WF,2));
my $ufh=$in->upload(’tfile’); binmode(WF);
while (<$ufh>){ print WF; }
close(WF);
if (open(UPF,«$ufile»)){
chomp(my @ufilec=); close(UPF);
if (open(UPF,«>$ufile»)){
sleep 1 unless(flock(UPF,2));
foreach $cstr(@ufilec){ $cstr=~/:=:/; if ($' ne $nixpl){ print UPF «$cstr\n»; } }
print UPF «$nowtime:=:$nixpl\n»; close(UPF);
print «FIle $tfile has been successfully uploaded. Wait for moderator checking.\n»;
sub use_sendmail{
if (open(MAIL,"|/usr/sbin/sendmail $_[0]»)){
print MAIL <<end_of_MAIL;
X-Mailer: sendmail
From: root\@nixp.ru
X-ident-From: unknown
Content-Type: text/plain; charset=CP1251
Subject: $_[1]
To: $_[0]\n
$_[2]\n
end_of_MAIL
close(MAIL);
} else { print «sendmail error»; }
}
&use_sendmail(«„,“Trash — new file«,»$nixpl uploaded new file to the 'Trash’. Moderate it here: »);
} else { print «DB error.\n»; }
} else { print «DB error.\n»; }
} else { print «Can’t create file.\n»; }
}
} else { print «DB error.\n»; }
} else { print «File you want to upload is too big.\n»; }
}
}
print qq~
upload index</a>
\n\n</body>\n</html>\n~;
</form>
</body>
</html>