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

Поиск:

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


Опытный
**


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

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



Добрый день, 

Необходимо при помощи скрипта передать форму с картинкой.

Чтобы поучиться я нашел простенький PHP Скрипт загрузки картинки на сервер и установил его на Денвер. Включил Андипарос и снял информации о POST запросе.
После чего написал код

Код

use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
use HTTP::Cookies;


my $lwp = LWP::UserAgent -> new ();
$lwp -> cookie_jar (HTTP::Cookies->new ());
$lwp -> agent ('Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16');

    my $url = 'http://www.test4.ru/upload.php';
    
    my $image = 'http___img.getzilla.net_1288_1288665_output.large.jpg';
    my $image_content = undef;
    
    open (FILE, $image) or die;
    binmode (FILE); 
    while (<FILE>) {
        $image_content = $image_content.$_;
    }
    close (FILE);

    
    my $postdata = 
'
-----------------------------8313447428022
Content-Disposition: form-data; name="MAX_FILE_SIZE"

30000
-----------------------------8313447428022
Content-Disposition: form-data; name="userfile"; filename="http___img.getzilla.net_1288_1288665_output.large.jpg"
Content-Type: image/jpeg

'.$image_content.'
----------------------------8313447428022--
';

my $content_length = length ($postdata);
print $content_length."\n";

    my $req = HTTP::Request -> new (
        'POST' => $url,
        [
            'Host' => 'test4.ru',
            'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 (.NET CLR 3.5.30729)',
            'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
            'Accept-Language' => 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
            'Accept-Charset' => 'windows-1251,utf-8;q=0.7,*;q=0.7',
            'Keep-Alive' => '115',
            'Proxy-Connection' => 'keep-alive',
            'Referer' => 'http://test4.ru/',
            'Content-Type' => 'multipart/form-data; boundary=---------------------------8313447428022',
            'Content-Length' => $content_length
        ]
    );

    $req -> content ($postdata);
    my $res = $lwp -> request ($req); 
    print $res->content."\n";



sub get_base_path {
    use Cwd; 
    my $cwd = getcwd ();
    return $cwd;
}



Который ни хрена не сработал. Судя по ответу не передается контент-тайп... хотя я в $postdata передаю все содержимое (которое выдал мне Андипарос).

Тогда я еще порылся
и накопал другой код
Код

use LWP;
use HTTP::Request::Common;

$ua = $ua = LWP::UserAgent->new;
   $res = $ua->request (
        POST 'http://test4.ru/upload.php',
        Content_Type => 'multipart/form-data',
        Content => [
            userfile => ["http___img.getzilla.net_1288_1288665_output.large.jpg", "http___img.getzilla.net_1288_1288665_output.large.jpg", "Content-Type" =>"image/jpg"],
            ],
        );        
print $res->as_string();



Который оказался на 100% рабочий.


Вопрос:
Почему не работает 1ый код. Мой супер проверенный код, которым пользовался всегда smile? где ошибка?
Скрипт для загрузки файлов на денвер я прилагаю.

Всем спасибо.

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  test4.ru.zip 1,14 Kb


--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
Dalin
Дата 5.10.2011, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


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

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


 




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


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

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