За последние 24 часа нас посетили 18208 программистов и 1611 роботов. Сейчас ищут 1899 программистов ...

Загрузка картинки на сервер

Тема в разделе "PHP для новичков", создана пользователем dennsp, 18 май 2011.

  1. dennsp

    dennsp Активный пользователь

    С нами с:
    18 май 2011
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Россия
    Имеется известный сайт, у сайта есть страница публикации объявления:
    http://www.avito.ru/additem
    На этой странице внизу имеется блок "Фотографии", в который загружаются картинки.

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

    Желательно сделать это с помощью вот такой функции отправки запроса:
    PHP:
    1. function ppage($url,$postdata,$ref=false) {
    2.   $uagent = "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10";
    3.   $ch = curl_init( $url );
    4.   curl_setopt($ch, CURLOPT_URL, $url);
    5.   curl_setopt($ch, CURLOPT_VERBOSE, 2);
    6.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    7.   curl_setopt($ch, CURLOPT_HEADER, 0);
    8.   curl_setopt($ch, CURLOPT_REFERER,$ref);
    9.   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    10.   curl_setopt($ch, CURLOPT_ENCODING, "");
    11.   curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
    12.   curl_setopt($ch, CURLOPT_TIMEOUT, 120);
    13.   curl_setopt($ch, CURLOPT_POST, 1);
    14.   curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
    15.   curl_setopt($ch, CURLOPT_COOKIEJAR,$_SERVER['DOCUMENT_ROOT'].'/'.basename(dirname(__FILE__)).'/cookies.txt');
    16.   curl_setopt($ch, CURLOPT_COOKIEFILE,$_SERVER['DOCUMENT_ROOT'].'/'.basename(dirname(__FILE__)).'/cookies.txt');
    17.   $content = curl_exec( $ch );
    18.   $err     = curl_errno( $ch );
    19.   $errmsg  = curl_error( $ch );
    20.   $header  = curl_getinfo( $ch );
    21.   curl_close( $ch );
    22.   $header['errno']   = $err;
    23.   $header['errmsg']  = $errmsg;
    24.   $header['content'] = $content;
    25.   return $header[content];
    26. }
     
  2. ckjet

    ckjet Активный пользователь

    С нами с:
    6 апр 2011
    Сообщения:
    172
    Симпатии:
    2
    А зачем с помощью cURL грузить картинку? ЗЫ то что сразу увидел return $header[content]; выдаст ошибку.
     
  3. dennsp

    dennsp Активный пользователь

    С нами с:
    18 май 2011
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Россия
    не выдаст
    эта функция хорошо работает для публикации объявления, но без картинок:
    PHP:
    1. ...
    2. $page=ppage('http://www.avito.ru/additem',$data,'http://www.avito.ru/additem');
    3. ...
     
  4. ckjet

    ckjet Активный пользователь

    С нами с:
    6 апр 2011
    Сообщения:
    172
    Симпатии:
    2