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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Закачка файлов на сервер через форму используя LWP 
:(
    Опции темы
White_Eagle
Дата 15.9.2011, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте! Помогите пожалуйста. Не могу закачать файл на сервер.
Использую версию Perl 5.10.

На странице есть форма:
Код

<form name=frm action="." target=_parent method=post enctype="multipart/form-data" onSubmit="frm.upbtn.disabled=true; return true;">
<input name=fileupload1 size=70 type=file><br />
<input name=fileupload2 size=70 type=file><br />
<input name=fileupload3 size=70 type=file><br />
<input name=fileupload4 size=70 type=file><br />
<input name=fileupload5 size=70 type=file><br />
<input name=upbtn type=submit value="Upload files">
</form>

Пытаюсь для начала загрузить хотя бы один файл. Выдает ошибку Error: 500 Not a SCALAR reference

Вот мой код:
Код

#!/usr/bin/perl
use strict;
use HTTP::Request::Common;
use LWP::UserAgent;
use HTTP::Cookies;

my $login='abc';
my $pass = '123'; 

my $file = 'sunset.jpg';

my $ua = LWP::UserAgent->new();
   $ua ->env_proxy();
   $ua ->cookie_jar(HTTP::Cookies->new(file => "cookies.txt",autosave=>1));

   
my  $req1 = HTTP::Request->new(GET => 'http://site.ua:58088/_i/cs/~upload');
    $req1->authorization_basic($login, $pass);

my $res = $ua->request($req1);
    if ($res->is_success) {
            my $headers = new HTTP::Headers(Referer => 'http://site.ua:58088/_i/cs/~upload');
            my $req2 = HTTP::Request->new(POST =>'http://site.ua:58088/_i/cs/~upload', $headers);
               $req2-> content_type ('multipart/form-data');
               $req2 -> content([fileupload1 => [$file]]);
                                                
                     $res = $ua->request($req2);
                      if ($res->is_success) {
                                                  print $res->as_string();
                                                   } else {
                                                           print "Error: " . $res->status_line . "\n";
                                                           }
                                                                        
                                 } else {
                                            print "Error: " . $res->status_line . "\n";
                                        }

PM MAIL   Вверх
White_Eagle
Дата 24.10.2011, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Решил через Mechanize:
Может кому пригодится.
Код

#!/usr/bin/perl
use WWW::Mechanize;

 my $up_file ='test.txt';
 my $mech = WWW::Mechanize->new(autocheck => 1, timeout => 180, noproxy => 1);
     eval{
           $mech->get($url);
           };
      if ($@) {
               print "Eval error - $@";
               exit;
              }
    $mech-> submit_form(form_name=>'имя_формы',
                        fields =>{имя_поля => $up_file},
                        button => 'имя_кнопки');
         

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


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

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


 




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


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

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