| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 от исходного файла. Буду рад, если мне кто-то объяснит в чем тут дело. |