Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   perl] как прикрепить в post картинку (https://forum.antichat.xyz/showthread.php?t=93128)

eLWAux 23.11.2008 15:10

perl] как прикрепить в post картинку
 
решил для себя написать (т.е. попрактиковаться) загрузку фотки вконтакте.
тут http://vkontakte.ru/profileEdit.php?page=photo изменил картинку, перехватил запрос
Цитата:

POST http://cs383.vkontakte.ru/upload.php?act=profile&mid=мой_ід&hash=мой _хеш&rhash=мой_хеш2
Host: cs383.vkontakte.ru
User-Agent: Mozilla/5.0
Keep-Alive: 300
Connection: keep-alive
Referer: http://vkontakte.ru/profileEdit.php?page=photo
Cookie: remixlang=0; remixchk=5; remixmid=мой_ід; remixemail=мило; remixpass=пасс; remixsid=сид
Content-Type: multipart/form-data; boundary=---------------------------241791819029657
Content-Length: 26635

и то что єсть в самом пост запросе:
-----------------------------241791819029657
Content-Disposition: form-data; name="subm"

1
-----------------------------241791819029657
Content-Disposition: form-data; name="photo"; filename="pic.gif"
Content-Type: image/gif

GIF89ad
я грузик картинку pic.gif и в конце поста, я так понимаю, должна бить єта картика, тоесть вместо GIF89ad должен бить послин бин.текст картинки

написал код:
Код:

use IO::Socket;

system('cls');

 sub readFile {
        #open myFILE, "<$_[0]" or die $!;
        #while (<myFILE>) { chomp; $res.=$_; }
        #return $res;
        #close myFILE;
        binmode FH;
        binmode STDOUT;
        open FH, $_[0];
        return <FH>;
        close FH;
        }

$sock = IO::Socket::INET->new(Proto => "tcp",
                                PeerAddr => "cs383.vkontakte.ru",
                                PeerPort => "80",
                                Timeout=> 10) || die "$socket";


print 'conect!';
                my $data =
                "-----------------------------12052273501150\n".
                "Content-Disposition: form-data; name=\"subm\"\n\n".
                "1\n".
                "-----------------------------12052273501150\n".
                "Content-Disposition: form-data; name=\"photo\"; filename=\"0000zwx9.gif\"\n".
                "Content-Type: image/gif\n".
                readFile("0000zwx9.gif")."\n".
                "-----------------------------12052273501150--";

                my $re =
                "POST http://cs383.vkontakte.ru/upload.php?act=profile&mid=ід&hash=хеш&rhash=хеш2 HTTP/1.1\n".
                "Host: cs383.vkontakte.ru\n".
                "User-Agent: Mozilla/4.0\n".
                "Referer: http://vkontakte.ru/profileEdit.php?page=photo&m=2\n".
                "Cookie: remixlang=0; remixchk=5; remixmid=ід; remixemail=мило; remixpass=пас; remixsid=сид\n".
                "Connection: keep-alive\n".
                "Content-Type: multipart/form-data; boundary=---------------------------12052273501150\n".
                "Content-Length: ".length($data)."\n\n".$data;

                print $sock $re; print 'send!';
                read($sock,my $answ,100);

                close($sock);

ответ принимает,.. но иду на сайт контакта а там картинка прежняя ;(

подскажите мне мою ошибку)


Время: 19:43