Автор Тема: Загрузка на сервер файла JPG  (Прочитано 7610 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
Загрузка на сервер файла JPG
« : 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:
.::dO_ob::.

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Re: Загрузка на сервер файла JPG
« Ответ #1 : 14 Сентября 2001, 22:51:45 »
Цитировать
Сообщение от nobody

но он у меня неработает, может у меня руки не истого места ростут....

Что конкретно не работает?
Картинка загружается на сервер?
Сообщения об ошибках?
2B OR NOT 2B = FF

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
<---()--->
« Ответ #2 : 14 Сентября 2001, 23:27:57 »
картинка негрузиться на сервер...
.::dO_ob::.

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Re: <---()--->
« Ответ #3 : 15 Сентября 2001, 00:17:53 »
Цитировать
Сообщение от nobody
картинка негрузиться на сервер...

И не будет.:)
По $FORM{\'FILE\'} уже понятно, что идет некорректный разбор данных формы.
perldoc CGI в части param.
И скрипт в форум полностью.
Приведенный кусок кода - правильный.
« Последнее редактирование: 15 Сентября 2001, 00:23:30 от Chs »
2B OR NOT 2B = FF

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
Re: Re: <---()--->
« Ответ #4 : 15 Сентября 2001, 00:35:45 »
Цитировать
Сообщение от Chs

И не будет.:)
По $FORM{\'FILE\'} уже понятно, что идет некорректный разбор данных формы.
perldoc CGI в части param.
И скрипт в форум полностью.
Приведенный кусок кода - правильный.
 


Я его кудато уже заховал...

Я открывал HTML в форму вставлял путь к файлу
и помещал его в $FORM{\'FILE\'}

ну и вроде все....
.::dO_ob::.

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Re: Re: Re: <---()--->
« Ответ #5 : 15 Сентября 2001, 00:46:18 »
Цитировать
Сообщение от nobody


Я его кудато уже заховал...

Я открывал HTML в форму вставлял путь к файлу
и помещал его в $FORM{\'FILE\'}

ну и вроде все....

Все телепаты форума в отпуске...
2B OR NOT 2B = FF

Оффлайн NAS

  • Неопытный юзер
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2951
  • +1/-0
  • 1
    • Просмотр профиля
    • http://nhouse.ru
Re: Re: Re: Re: <---()--->
« Ответ #6 : 15 Сентября 2001, 00:48:40 »
Цитировать
Сообщение от Chs

Все телепаты форума в отпуске...

А телепат у нас Kakadu, который давно в отпуске :)

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
Re: Re: Re: Re: Re: <---()--->
« Ответ #7 : 15 Сентября 2001, 01:07:38 »
Цитировать
Сообщение от 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};
};

Так что телепатов ненадо...
.::dO_ob::.

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Re: Re: Re: Re: Re: Re: <---()--->
« Ответ #8 : 15 Сентября 2001, 07:17:35 »
Цитировать
Сообщение от 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 и не изобретайте велосипедов.:)
2B OR NOT 2B = FF

Оффлайн Чужой

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
Re: Re: Re: Re: Re: Re: Re: <---()--->
« Ответ #9 : 19 Сентября 2001, 12:37:03 »
Цитировать
Сообщение от Chs

Как и предполагал - неверный разбор данных формы.
При enctype=multipart/form-data все выглядит несколько не так.:)
Люди! Пользуйтесь модулем CGI и не изобретайте велосипедов.:)

К сожалению у некотрых админов руки растут не от туда откуда надо в результате модуль CGI или старый (нет upload) или его вообще нет (вот этот вариант меня вообще убивает).

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Re: Re: Re: Re: Re: Re: Re: Re: <---()--->
« Ответ #10 : 19 Сентября 2001, 13:49:30 »
Цитировать
Сообщение от Чужой

К сожалению у некотрых админов руки растут не от туда откуда надо в результате модуль CGI или старый (нет upload) или его вообще нет (вот этот вариант меня вообще убивает).

Никто не мешает установить CGI в свою директорию, его даже компилировать не надо.:)
2B OR NOT 2B = FF

  • Гость
Загрузка на сервер файла JPG
« Ответ #11 : 15 Октября 2001, 11:12:29 »
Ну а если и есть CGI.pm то как тогда им юзатся?

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Загрузка на сервер файла JPG
« Ответ #12 : 15 Октября 2001, 23:05:20 »
perldoc CGI :)
2B OR NOT 2B = FF

Оффлайн Vot

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Загрузка на сервер файла JPG
« Ответ #13 : 10 Апреля 2004, 23:44:41 »
Подскажите пожалуйста, проблема в следующем:
Пытаюсь зделать UpLoad. Пишу:
  open(Z, ">$path/img/foto/$mydate.jpg");
  binmode (Z);
  syswrite (Z, $file); # и print тоже писал
close(Z);

Но если UpLoad-ый файлик открыть в HEX редакторе, то все символы \'00\' заменяются на \'20\' (кстати и то и другое есть пробел).
Прям не знаю что и делать?

Оффлайн Vot

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Загрузка на сервер файла JPG
« Ответ #14 : 11 Апреля 2004, 19:52:33 »
Нет, поправочка \'00\' - это не пробел, но тем неменее.
Дело в том что я пытаюсь залить файлы на h10.ru, но локально у меня все работает великолепно. Может ето у них какие нибудь методы защиты работают?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28