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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> POST запрос с отправкой файла 
:(
    Опции темы
kezman
Дата 14.11.2009, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Просьба помочь со скриптом, который отправляет POST запрос с передачей файла?
Проблема заключается в том, чтобы в POST запросе, где необходимы куки, полученные ранее, передать еще и файл, т.е. multipart/form-data.

Это сообщение отредактировал(а) kezman - 15.11.2009, 12:46
PM MAIL   Вверх
Paul56
Дата 16.11.2009, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



скрипт ф студию пожалуйста ;)
PM ICQ   Вверх
krypt3r
Дата 16.11.2009, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Пример отправки файла из документации
Код

perldoc HTTP::Request::Common


Код

Sending my ~/.profile to the survey used as example above can be achieved by this:

             POST 'http://www.perl.org/survey.cgi',
                  Content_Type => 'form-data',
                  Content      => [ name  => 'Gisle Aas',
                                    email => '[email protected]',
                                    gender => 'M',
                                    born   => '1964',
                                    init   => ["$ENV{HOME}/.profile"],
                                  ]

PM MAIL   Вверх
crang
Дата 26.1.2010, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

#!/usr/bin/perl -w

use LWP::UserAgent;
use HTTP::Request::Common;
use HTTP::Headers;
use HTTP::Cookies;  # Для кукисов
use Encode;
use LWP;


$login = 'login';
$pass = 'pass';

$head = HTTP::Headers->new();

# Эти значения нужно менять на свои:

$head->header('Host'=>'tracker.local');
$head->header('Referer'=>'http://tracker.local/upload.php');
$head->header('Accept'=>'application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5');
$head->header('Origin'=>'tracker.local');
$head->header('User-Agent'=>'Mozilla/5.0');
$head->header('Content-Type'=>'multipart/form-data');
$head->header('Connection'=>'keep-alive');

$ua = LWP::UserAgent->new(default_headers=>$head);

my $cookish = HTTP::Cookies->new(); 
$ua->cookie_jar($cookish);

push @{ $ua->requests_redirectable }, 'POST'; # чтоб получать результат выполнения скрипта 
$url = 'http://tracker.local/takelogin.php'; # url скрипта, который обрабатывает submit формы авторизации 
my $resp = $ua->request(POST $url, {'username' => $login, 'password' => $pass}); # авторизация (с кукисами) 

 $tfile = '/ftp_root/t/'. $file;

  my $resp = $ua->post($urlo, ['tfile' => [$tfile], 'name' => $cp_file, 'type' => '13', 'descr' => $cp_file], 'Content_Type' => 'form-data'); # отпрвка формы с загрузкой файла ( 'tfile' => [$tfile] ) 

  $content = $resp->content; # результат
  $content =~ m/href="(download\.php.*)amp;(name.*\.torrent)"/;
  print "Content-Type:text/html\n\n";
  print $1 . $2;

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


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

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


 




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


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

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