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

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

R1der23 18.06.2009 17:31

Заливка фотки на сервак контакта PHP вопрос
 
Привет. Столкнулся с проблемой автоматической заливки фотки на сервак. Вот следующий код..
Цитата:

$filename="123.jpg";
$fp=fopen($filename,"r");
if ($fp!=false)
{
$bodyimage="";
while (!feof($fp)) $bodyimage.=fgets($fp,1024);
fclose($fp);
}

$buffer=connect($proxy,$proxyport,1,genmessage($se rver,3,"/profileEdit.php?page=photo",0,$cookie));
preg_match_all("/method=\"post\" action=\"http:\/\/(.*?).vkontakte.ru\/upload.php\?act=profile&(.*?)\"/is",$buffer,$path);
$post="key=profile_photo_flood&item_id=".trim($flo od[1][0]);
$buffer=connect($proxy,$proxyport,1,genmessage($se rver,4,"/captchaFlood.php",$post,$cookie));

$sendhost=$path[1][0].".$server";
$boundary="----------oQwjKuMeah9zw9GmYnadCO";
$content="--$boundary\r\n";
$content.="Content-Disposition: form-data; name=\"subm\"\r\n";
$content.="\r\n";
$content.="1\r\n";
$content.="--$boundary\r\n";
$content.="Content-Disposition: form-data; name=\"file\"; filename=\"$filename\"\r\n";
$content.="Content-Type: image/jpeg\r\n";
$content.="\r\n";
$content.=$bodyimage."\r\n";
$content.="--$boundary--";

$poststr="POST /upload.php?act=profile&".trim($path[2][0])." HTTP/1.0\r\n";
$poststr.="User-Agent: Opera/9.64 (Windows NT 6.1; U; ru) Presto/2.1.1\r\n";
$poststr.="Host: $sendhost\r\n";
$poststr.="Accept: text/html, application/xml;q=0.9, application/xhtml xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n";
$poststr.="Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n";
$poststr.="Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1\r\n";
$poststr.="Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0\r\n";
$poststr.="Referer: http://vkontakte.ru/profileEdit.php?page=photo\r\n";
$poststr.="Cookie: $cookie\r\n";
$poststr.="Cookie2: \$Version=1\r\n";
$poststr.="Proxy-Connection: Keep-Alive\r\n";
$poststr.="Content-Length: ".strlen($content)."\r\n";
$poststr.="Content-Type: multipart/form-data; boundary=----------$boundary\r\n\r\n";
$poststr.=$content;
echo $poststr;
$buffer=connect($sendhost,80,1,$poststr);
echo $buffer;
функция genmessage это просто генерация запроса.. на нее не смотрим.. и так собсно не грузит.. контакт возвразщает следующий результат..
Цитата:

HTTP/1.1 302 Found Server: nginx/0.6.32 Date: Thu, 18 Jun 2009 13:24:47 GMT Content-Type: text/html; charset=-1251 Connection: close X-Powered-By: PHP/5.2.6-1+lenny3 Pragma: no-cache Cache-control: private, must-revalidate Location: http://vkontakte.ru/profileEdit.php?page=donephoto&mid=41170479&server =955&photo=&hash=d771663a7840ff38cffd88655b81f299& message_code=0 Content-Length: 0

что есть отрицательныфй результат загрузки.. раньше сталкивался с загрузкой фоток все получалось.. но тут уже два дня парюсь.. никак не получается.. помогите.. в чем моя ошибка.. все прочие параметры типа хэша и прочего передаем.. все ок.. заранее спасибо

D Mak 18.06.2009 17:39

юзай курл

Pashkela 18.06.2009 17:49

Цитата:

Content-Length: 0
по идее не ноль должно быть, как думаешь?:)

R1der23 18.06.2009 17:52

Цитата:

Сообщение от Pashkela
по идее не ноль должно быть, как думаешь?:)

это уже ответ сервака вконтакте..

наш content lenght
$poststr.="Content-Length: ".strlen($content)."\r\n";

Tigger 18.06.2009 17:58

Перепеши под курлы, как сказали выше.

попугай 18.06.2009 18:09

Какая разница курлы не курлы? HTTP протокол один на всех.

Просто нужно составить заголовок корректный.

попугай 18.06.2009 18:17

Это заголовок аплоада.
Цитата:

POST /upload.php?act=profile&mid=айдитвой&hash= еш&rhash=хеш HTTP/1.1
User-Agent: Opera/9.64 (Windows NT 5.1; U; MRA 5.4 (build 02647); ru) Presto/2.1.1
Host: cs267.vkontakte.ru
Accept: application/xhtml+voice+xml;version=1.2, application/x-xhtml+voice+xml;version=1.2, text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Expect: 100-continue
Referer: http://vkontakte.ru/profileEdit.php?page=photo
Cookie: куки
Cookie2: $Version=1
Connection: Keep-Alive
Content-Length: 58686
Content-Type: multipart/form-data; boundary=----------OYSqFLETjb1GpbkQbPHWXg

------------OYSqFLETjb1GpbkQbPHWXg
Content-Disposition: form-data; name="subm"

1
------------OYSqFLETjb1GpbkQbPHWXg
Content-Disposition: form-data; name="photo"; filename="jpg.jpg"
Content-Type: image/jpeg

содержимое фотки

------------OYSqFLETjb1GpbkQbPHWXg--
Затем сервак возвращает 302 - скрипт должен загрузить url, в заголовке Location(это видимо подтверждение загрузки типа)

R1der23 18.06.2009 19:36

но ведь я в пример и привел тоже самое.. запрос абсолютно корректный.. можешь сам помотреть.. в том то и дело.. я не понимаю что не так сделал.. все ведь верно!!

Zitt 18.06.2009 19:49

енот же писал это... посмар be него

попугай 18.06.2009 20:12

Цитата:

Сообщение от R1der23
но ведь я в пример и привел тоже самое.. запрос абсолютно корректный.. можешь сам помотреть.. в том то и дело.. я не понимаю что не так сделал.. все ведь верно!!

Затем сервак возвращает 302 - скрипт должен загрузить url, в заголовке Location(это видимо подтверждение загрузки типа)


Это сделал?


Время: 05:32