Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Файлы от 10к и больше не грузятся (Upload), процессор грузится на 100% 
:(
    Опции темы
TTT
Дата 29.1.2008, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.3.2007

Репутация: нет
Всего: 1



Есть простой скрипт:
Код

#!c:\perl\bin\perl.exe -w

if($ENV{REQUEST_METHOD} eq "POST")
  {
  binmode STDIN;
  $size = $ENV{CONTENT_LENGTH};
  $bytesread = 0;
  while($bytesread < $size)
    {
    $blen = read STDIN, $buffer, 4096, $bytesread;
    $bytesread += $blen;
    }
  print "Content-Type: text/html\n\n";
  my $len = length($buffer);
  print "<HTML><BODY>\$size=$size;  \$len=$len;<BR/> $buffer </BODY> </HTML>";
  }
else
  {
  print qq{Content-Type: text/html\n\n
  <HTML> <BODY>
  <FORM ACTION="$ENV{SCRIPT_NAME}" ENCTYPE="multipart/form-data" method="POST">
  FROM:<INPUT TYPE=file name="file upload">
  <INPUT TYPE=submit value="send">
  </FORM> </BODY> </HTML> };
  }

локально на денвере работает без проблем. грузит файлы и по 200К. на сервере в в интернете не хочет грузить файлы больше 10К. зависает и по таймауту вываливается. локально у меня винда XP Pro SP2, пакет Denwer. В интернете сервер на Win2003, и Oracle HTTP Server (Apache). Перл 5.8.8 в обоих местах. Подскажите в чем может быть проблема. 
PM MAIL   Вверх
ginnie
Дата 29.1.2008, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



Уважаемый TTT,  отвечу вопросом на вопрос:
есть нормальный, проверенный в работе модуль CGI, почему некоторые его игнорируют и начинают изобретать "велосипеды" (которые еще не везде ездить могут smile )?

Если по теме вопроса, то попробуйте изменить условие завершения цикла чтения из STDIN - читать до конца данных в потоке (а не конкретное число байт); возможно это наведет Вас на правильные мысли.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
TTT
Дата 29.1.2008, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.3.2007

Репутация: нет
Всего: 1



Пробовал уже и все разом читать, и менять размер читаемого блока за раз. На результат не влияет. А изобретать велосипед пришлось когда модуль не работает, чтобы упростить задачу до максимума. 
Может что-то в настройках апача, вот только что искать не знаю.

Это сообщение отредактировал(а) TTT - 29.1.2008, 23:34
PM MAIL   Вверх
ginnie
Дата 29.1.2008, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



Цитата(TTT @  29.1.2008,  23:33 Найти цитируемый пост)
 А изобретать велосипед пришлось когда модуль не работает

можно с этого места поподробнее  smile

вывод в лог
Код

warn "readed bytes: $bytesread\n";

внутри цикла поможет понять, что поисходит.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
TTT
Дата 30.1.2008, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.3.2007

Репутация: нет
Всего: 1



Цитата(ginnie @  29.1.2008,  23:46 Найти цитируемый пост)
warn "readed bytes: $bytesread\n";

в лог пишет только при удачной попытке, неудачная - броузер ожидает ответа от сервера, и очень долго ожидает. потом завершается по таймауту
при этом процессор грузится на 100%

Это сообщение отредактировал(а) TTT - 30.1.2008, 00:21
PM MAIL   Вверх
ginnie
Дата 30.1.2008, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



Если процессор Вашего ПК загружен на 100% и в логе сервера тишина, возможно проблема на Вашем ПК. Попробуйте загрузить файл из другого браузера.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
TTT
Дата 30.1.2008, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.3.2007

Репутация: нет
Всего: 1



Проблема решилась установкой апача от апача. Поставил 2.2. Все работает. К сожалению так и не получилось выяснить причину такого ограничения. Спасибо ginnie за участие.

ЗЫ: 100% загрузка сервера а не клиента

Это сообщение отредактировал(а) TTT - 30.1.2008, 14:51
PM MAIL   Вверх
nitr
Дата 30.1.2008, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



TTT, молодец что решили сами.
Так всё же, причину "невозможности" использования CGI.pm можно указать?

100% загрузка из-за цикла while.


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.2778 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.