|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Michael Kichanov 2:5020/400 27 Apr 2002 13:33:19 To : All Subject : upload -------------------------------------------------------------------------------- Hi All! подскажите плиз хинт куда смотреть. при закачке файлов скриптом бинарные файлы криво передаются сервак апач на фрюхе (т.е. binmode не должен влиять) - ---html <FORM Method=Post Action="/cgi-bin/fi.pl" enctype="multipart/form-data"> <INPUT Type=File Name="File"> <INPUT Type=Submit> </FORM> - ---script #!/usr/local/bin/perl print "Content-type: text/html\n\n"; $type = $ENV{'CONTENT_TYPE'}; $len = $ENV{'CONTENT_LENGTH'}; $path = '/tmp/'; # --- получить boundary ($temp, $b) = split(/=/,$type); $startboundary = '--'.$b; $endboundary = '--'.$b.'--'; # --- ищем boundary while (!($temp =~ /$startboundary/g)) { $temp = <>; $len -= length $temp; } # --- получить имя файла $temp = <>; if ($temp =~ /filename=""/gi) { print <<ETX; <font color=red><b>Отсутствует файл для пеpедачи.</b></font><br> Пpовеpьте пpавильность введенных данных<hr> ETX exit; } $len -= length $temp; @dim = split(/\\/,$temp); $i=@dim; $name = $dim[$i-1]; $name =~ s/"//g; $filen = $path.$name; # --- skip empty line $temp = <>; $len -= length $temp; $len -= length $endboundary; $len -= 4; binmode STDIN; open (F, ">$filen"); binmode(F); read STDIN, $buf, $len; print F $buf; close (F); print "<font color=red><b>Пеpедача успешно завеpшена.</font></b><br> Записано $len байт.<hr>"; thanx in advance, mike --- ifmail v.2.15dev5 * Origin: Internet-Arkhangelsk Company (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/8926e9c15a43.html, оценка из 5, голосов 10
|