Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Глюк с аплоадом файлов на сервер.


Автор: Wowa 6.4.2002, 11:56
Столкнулся я с такой интересной вещью связанной с закачкой файлов с винта на сервер:

sub DO_upload_images_for_news {
my @img=();
$img[0]=param('img0');
$img[1]=param('img1');
$img[2]=param('img2');
$img[3]=param('img3');
$img[4]=param('img4');

# Закачиваем
 open(OUT,">$sml_news_images_path/$name.$ext_file");
 binmode(OUT);
 while (<$img[0]>) { print OUT $_ }
 close(OUT);

...

}

Итак, приведенный выше кусок кода не работает! Честно сказать, я не сразу понял в чем дело и изрядно с этим повозился в 3 часа ночи :)))

А вот это уже работает:
sub DO_upload_images_for_news {
$img0=param('img0');
$img1=param('img1');
$img2=param('img2');
$img3=param('img3');
$img4=param('img4');

# Закачиваем
 open(OUT,">$sml_news_images_path/$name.$ext_file");
 binmode(OUT);
 while (<$img0>) { print OUT $_ }
 close(OUT);

...

}


Вывод: Таким образом получается, что нельзя элементам массива присваивать значение типа: param('img0')
Лучше присваивать обычным полноценным скалярным переменным, тогда все работает.
А если дело имеете с элементами массива, как я в первом примере, то в файл создаваемый на сервере файл почему-то записывается только ~1/5 от исходного файла.

Буду рад, если мне кто-то объяснит в чем тут дело.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)