Forum Webscript.Ru
Программирование => Perl => Тема начата: nobody от 14 Сентября 2001, 21:19:54
-
Покапался тут на форуме и нашел только один пример:
$filename=$KARTINKA; №Нужно для имени файла
$filename =~ s/^.*(\\\\|\\/)//; # вырезает имя из общей локальной дороги
open (OUTFILE,">$filename");
binmode $KARTINKA; # Обезательна для картинок и других Бинари
binmode OUTFILE; # Обезательна для картинок и других Бинари
while ($bytesread=read($KARTINKA,$buffer,1024)) {
print OUTFILE $buffer;
}
close (OUTFILE);
но он у меня неработает, может у меня руки не истого места ростут....
приходит файл допустим с формы $FORM{\'FILE\'}:rolleyes:
-
Сообщение от nobody
но он у меня неработает, может у меня руки не истого места ростут....
Что конкретно не работает?
Картинка загружается на сервер?
Сообщения об ошибках?
-
картинка негрузиться на сервер...
-
Сообщение от nobody
картинка негрузиться на сервер...
И не будет.:)
По $FORM{\'FILE\'} уже понятно, что идет некорректный разбор данных формы.
perldoc CGI в части param.
И скрипт в форум полностью.
Приведенный кусок кода - правильный.
-
Сообщение от Chs
И не будет.:)
По $FORM{\'FILE\'} уже понятно, что идет некорректный разбор данных формы.
perldoc CGI в части param.
И скрипт в форум полностью.
Приведенный кусок кода - правильный.
Я его кудато уже заховал...
Я открывал HTML в форму вставлял путь к файлу
и помещал его в $FORM{\'FILE\'}
ну и вроде все....
-
Сообщение от nobody
Я его кудато уже заховал...
Я открывал HTML в форму вставлял путь к файлу
и помещал его в $FORM{\'FILE\'}
ну и вроде все....
Все телепаты форума в отпуске...
-
Сообщение от Chs
Все телепаты форума в отпуске...
А телепат у нас Kakadu, который давно в отпуске :)
-
Сообщение от NAS
А телепат у нас Kakadu, который давно в отпуске :)
Пришлось вспоминать куда засунул
rint "Content-Type: text/html\\nPragma: no-cache\\nExpires: Tue, 1 Jan 1980 00:00:00 GMT\\n\\n";
$config="conf";
&ReadCfg;
&getFORM;
($bpath,$_) = split(/;/,$CFG{\'bpath\'});
&Step1 if $FORM{\'ac\'} eq \'s1\';
&Search;
sub Search{
open IN, $CFG{\'searchhtm\'};
print ;
close IN;
};
sub ReadCfg {
my (@cfg, $cfg);
open IN, $config || die "trouble open $config";
@cfg=;
close IN;
foreach $cfg (@cfg){
if (substr($cfg,0,1) ne \'#\') {
chomp ($cfg);
($name,$value) = split(/=/,$cfg,2);
$CFG{$name}=$value;
}
}
};
sub CheckForm{
my $serr=$CFG{\'joinwrong\'};
my @swr=split(/->/,$CFG{\'searchwrongwords\'});
$serr = $serr . " @swr[0] " if $FORM{\'FILE\'} eq \'\';
if($serr ne $CFG{\'joinwrong\'}){
undef $/;
open cfIN, $CFG{\'searchhtm\'};
my $mess = ;
close cfIN;
$/="\\n";
$mess =~ s//$serr/g;
foreach $i (keys %FORM){
$mess =~ s/>/ value="$FORM{$i}">/g;
};
print $mess;
exit;
}
};
$filename=$FORM{\'FILE\'};
$filename =~ s/^.*(\\\\|\\/)//;
open (OUTFILE,">$filename");
binmode $FORM{\'FILE\'};
binmode OUTFILE;
while ($bytesread=read($FORM{\'FILE\'},$buffer,1024)) {
print OUTFILE $buffer;
}
close (OUTFILE);
sub getFORM{
read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$name =~ s///g;
$name =~ s/<([^>]|\\n)*>//g;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
$value =~ s/<([^>]|\\n)*>//g;
$FORM{$name} = $value;}
$act = $FORM{act};
};
Так что телепатов ненадо...
-
Сообщение от nobody
sub getFORM{
read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$name =~ s///g;
$name =~ s/<([^>]|\\n)*>//g;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
$value =~ s/<([^>]|\\n)*>//g;
$FORM{$name} = $value;}
$act = $FORM{act};
};
Так что телепатов ненадо...
Как и предполагал - неверный разбор данных формы.
При enctype=multipart/form-data все выглядит несколько не так.:)
Люди! Пользуйтесь модулем CGI и не изобретайте велосипедов.:)
-
Сообщение от Chs
Как и предполагал - неверный разбор данных формы.
При enctype=multipart/form-data все выглядит несколько не так.:)
Люди! Пользуйтесь модулем CGI и не изобретайте велосипедов.:)
К сожалению у некотрых админов руки растут не от туда откуда надо в результате модуль CGI или старый (нет upload) или его вообще нет (вот этот вариант меня вообще убивает).
-
Сообщение от Чужой
К сожалению у некотрых админов руки растут не от туда откуда надо в результате модуль CGI или старый (нет upload) или его вообще нет (вот этот вариант меня вообще убивает).
Никто не мешает установить CGI в свою директорию, его даже компилировать не надо.:)
-
Ну а если и есть CGI.pm то как тогда им юзатся?
-
perldoc CGI :)
-
Подскажите пожалуйста, проблема в следующем:
Пытаюсь зделать UpLoad. Пишу:
open(Z, ">$path/img/foto/$mydate.jpg");
binmode (Z);
syswrite (Z, $file); # и print тоже писал
close(Z);
Но если UpLoad-ый файлик открыть в HEX редакторе, то все символы \'00\' заменяются на \'20\' (кстати и то и другое есть пробел).
Прям не знаю что и делать?
-
Нет, поправочка \'00\' - это не пробел, но тем неменее.
Дело в том что я пытаюсь залить файлы на h10.ru, но локально у меня все работает великолепно. Может ето у них какие нибудь методы защиты работают?
-
Русский впач....
Фак читаем?