|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Bakha Maukeev 2:5020/400 11 Dec 2000 09:09:28 To : All Subject : Проблема с размером передачи данных по HTTP -------------------------------------------------------------------------------- Уважаемый ALL! Извените, за очень чайниковский вопрос, но я только научился писать на Perl - полный чайник, и нигде в FAQах и книжках пока не нашёл ответа. У меня возникла проблема, когда я пытаюсь передать из формы и тега <textarea> текст размером в 4 kb при методе POST и записать этот текст в текстовой файлик. То почему-то текст срезается и записывается только 1,5 kb. Я работаю под Win98, уже испробовал все freewareные Web-Servera типа Apache, Tiny, Sambar, PWS, HServ и многое другое. Hо это не помогает. Помогите, может это что-то не так делаю? Вот мой скрипт: #!c:\perl\bin\perl # savef.pl #Function to decoding data from HTTP sub urldecode { local($val) = @_; $val =~ s/\+/ /g; $val =~ s/%([0-9a-hA-H]{2})/pack('C',hex($1))/ge; return $val; } #Get parametrs from query-string if ($ENV{'REQUEST_METHOD'} eq 'GET'){$query = $ENV{'QUERY_STRING'};} elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {sysread(STDIN, $query, $ENV{'CONTENT_LENGTH'});} if ($query ne '') { @formfields = split(/&/,$query); foreach (@formfields) { if (/^ffile=(.*)/){$ffile=urldecode($1);} if (/^txtview=(.*)/){$txtview=urldecode($1);} } } #Display data in HTML - Это так для контроля, что пишется в файл print "Content-Type: text/html\n\n"; print "<html><title>Test for CGI</title><head></head>"; print "<body bgcolor=\"FFFFCC\">"; print "<h1>Test1 - open file using Perl </h1><br><hr>"; print "<input type=\"hidden\" name=\"ffile\" value=\"$ffile\">"; print "<textarea name=\"txtview\" rows=\"20\" cols=\"92\">"; #Take out \n while ( $txtview =~ s/\n// ) { chomp($txtview); } printf $txtview; print "</textarea><br>"; print "<input type=\"SUBMIT\" name=\"ffback\" value=\"BACK\" onClick=\"history.back(-1);return false;\">"; print "<hr></body><html>"; #Save file to HDD open(PASS, ">$ffile") || die "Not works! $_"; while ( $txtview =~ s/\n// ) { chomp($txtview); } print PASS "$txtview"; close (PASS); -- Всё на земле не бывает случайно... Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/648884254603.html, оценка из 5, голосов 10
|