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


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Alexander V. Gaiduk                  2:5020/400     04 Jan 2003  17:11:36
 To : Alexander Ponomarenko
 Subject : Hа: Upload
 -------------------------------------------------------------------------------- 
 
 > Hарод! Делаю так аплоад. И есть проблема: как из всего этого выделить
 > сам файл и имя файла. Если делать так, то в юниховской кодировке файлы
 
 приходят
 
 > нормально, а в виндовой неправильно. Как сделать правильно?
 
 вот это одинаково работает и в виндусе и в линухе,
 заполняется хэш "%in", в нем все данные о файле будут.
 
 sub ReadParseMime {
   binmode(STDIN);
   my ($boundary,$line,$foo,$name,$rest);
   $ENV{CONTENT_TYPE} =~ /boundary=(.*)$/;
   $boundary = $1;
   <STDIN>;        # skip first boundary
   while(1) {
     $name = "";
     # Read section headers
     while(1) {
       $line = <STDIN>;
       chop($line); chop($line);  # lose /r/n
       if (!$line) { last; }
       elsif ($line =~ /^Content-Disposition: form-data(.*)/) {
         $rest = $1;
         while ($rest =~ /([a-zA-Z]*)=\"([^\"]*)\"(.*)/) {
           if ($1 eq 'name') {
             $name = $2;
           } else {
             $foo = $name . "_$1";
             $in{$foo} = $2;
           }
           $rest = $3;
         }
       }
       elsif ($line =~ /^Content-Type: (.*)/) {
         $foo = $name . "_content_type";
         $in{$foo} = $1;
       }
     }
   # Read data
   $in{$name} .= "\0" if ($in{$name});
   while(1) {
     $line = <STDIN>;
     if (!$line) { return; }
     if (index($line,"$boundary") != -1) { last; }
     $in{$name} .= $line;
   }
   chop($in{$name}); chop($in{$name});
   if (index($line,"$boundary--") != -1) { last; }
   }
 }
 
 зы.
 применяется, когда надо распушить данные с формы "multipart/form-data"
 
 ззы.
 украдено из Webmin.
 --- ifmail v.2.15dev5
  * Origin: LesoBANK (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Upload   Alexander Ponomarenko   04 Jan 2003 01:29:06 
 Re: Upload   Artem Chuprina   04 Jan 2003 15:23:43 
 Hа: Upload   Alexander V. Gaiduk   04 Jan 2003 17:11:36 
Архивное /ru.cgi.perl/1199964b080ab.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional