perl] как прикрепить в post картинку

Discussion in 'PHP' started by eLWAux, 23 Nov 2008.

  1. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    решил для себя написать (т.е. попрактиковаться) загрузку фотки вконтакте.
    тут http://vkontakte.ru/profileEdit.php?page=photo изменил картинку, перехватил запрос
    я грузик картинку pic.gif и в конце поста, я так понимаю, должна бить єта картика, тоесть вместо GIF89ad должен бить послин бин.текст картинки

    написал код:
    Code:
    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);
    ответ принимает,.. но иду на сайт контакта а там картинка прежняя ;(

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