За последние 24 часа нас посетили 15260 программистов и 1673 робота. Сейчас ищут 905 программистов ...

Загрузка фото на АВИТО

Тема в разделе "Прочие вопросы по PHP", создана пользователем thescar, 30 июн 2014.

  1. thescar

    thescar Новичок

    С нами с:
    28 июн 2014
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте!

    Подскажите, как можно загрузить фото на Авито при создании объявления - http://www.avito.ru/additem

    Отловил с помощью FireBug POST запрос и написал скриптик:

    Код (Text):
    1. <?
    2. set_time_limit(0);
    3. header('Content-type: text/html; charset=utf-8' );
    4.  
    5.  
    6. // Отправка фото
    7. $f =dirname(__FILE__).'\1.jpg';
    8.  
    9. $ch = curl_init();
    10. curl_setopt($ch, CURLOPT_URL, "http://www.avito.ru/additem/image");
    11. curl_setopt($ch, CURLOPT_REFERER, "http://www.avito.ru/additem");
    12. curl_setopt($ch, CURLOPT_HEADER, 1);
    13. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    14. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    15. curl_setopt($ch, CURLOPT_VERBOSE, 1);
    16. curl_setopt($ch, CURLOPT_POST, 1);
    17. curl_setopt($ch, CURLOPT_POSTFIELDS, array('name'=>'image','filename'=>"@$f"));
    18. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '\cookie.txt');
    19. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '\cookie.txt');
    20. $postResult = curl_exec($ch);
    21. if (curl_errno($ch)) echo 'Ошибочка - '. curl_error($ch);
    22. else echo $postResult;
    23. curl_close($ch);
    В ответ получаю

    HTTP/1.1 100 Continue HTTP/1.1 200 OK Server: nginx Date: Sat, 30 Jun 2014 14:28:43 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Keep-Alive: timeout=15 Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 X-Frame-Options: SAMEORIGIN
    {"error":"Ошибка загрузки изображения"}


    При успешной загрузке должен выдавать вроде этого {"id":897894138,"url":"//38.img.avito.st/140x105/897894138.jpg"}


    Пробовал с помощью curl_setopt($ch, CURLOPT_UPLOAD, true); - вообще выдает 404 ошибку


    Авторизация никак не влияет на загрузку изображений (можно грузить даже не имея аккаунта)

    Создал тестовый файл с
    Код (Text):
    1. copy($_FILES['filename']['tmp_name'],'2.jpg');
    и отсылал к себе тем же скриптом. В итоге картинка сохранялась.

    Помогите разобраться с этим, плиз!