За последние 24 часа нас посетили 22504 программиста и 1152 робота. Сейчас ищут 669 программистов ...

Как отправить массив curl

Тема в разделе "PHP для новичков", создана пользователем AnteFil, 22 сен 2022.

  1. AnteFil

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

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Пытаюсь по api vk отправить несколько картинок.
    PHP:
    1. $img[] = 'perelom.jpg';
    2.     $img[] = 'perelom.jpg';
    3.     $img[] = 'perelom.jpg';
    4.  
    5.     $server = file_get_contents('https://api.vk.com/method/photos.getWallUploadServer?group_id=' .      $group_id . '&access_token=' . $token . '&v='.$api_ver.'');
    6.     $server = json_decode($server);
    7.     if (!empty($server->response->upload_url)) {
    8.     foreach ($img as $index => $file) {
    9.     $postData[]['photo'] = curl_file_create($file,'image/jpeg','Проверка');
    10.     }
    11.     $ch = curl_init();
    12.     curl_setopt($ch, CURLOPT_URL, $server->response->upload_url);
    13.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    14.     curl_setopt($ch, CURLOPT_POST, 1);
    15.     curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
    16.     $upload = curl_exec($ch);
    17.     curl_close($ch);
    18.     $upload = json_decode($upload);
    19.     echo '<pre>';
    20.     print_r($postData);
    Получаю вот такой массив
    PHP:
    1. (
    2.     [0] => Array
    3.         (
    4.             [photo] => CURLFile Object
    5.                 (
    6.                     [name] => perelom.jpg
    7.                     [mime] => image/jpeg
    8.                     [postname] => Проверка
    9.                 )
    10.  
    11.         )
    12.  
    13.     [1] => Array
    14.         (
    15.             [photo] => CURLFile Object
    16.                 (
    17.                     [name] => perelom.jpg
    18.                     [mime] => image/jpeg
    19.                     [postname] => Проверка
    20.                 )
    21.  
    22.         )
    23.  
    24.     [2] => Array
    25.         (
    26.             [photo] => CURLFile Object
    27.                 (
    28.                     [name] => perelom.jpg
    29.                     [mime] => image/jpeg
    30.                     [postname] => Проверка
    31.                 )
    32.  
    33.         )
    34.  
    35. )
    Вообщем контакт не принимает. Я подозреваю что из за того что массив сформирован не правильно.
    Если отправляю одну картинку
    PHP:
    1.    
    2. $image = 'perelom.jpg';
    3. $curl_file = curl_file_create($image);
    4. curl_setopt($ch, CURLOPT_POSTFIELDS, array('photo' => $curl_file));
    То она уходит
     
  2. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    861
    Симпатии:
    132
    1) у api.vk нет комьюнити? почему вопрос здесь?
    2) если у них нет SDK, примите сочувствие.
     
  3. AnteFil

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

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Вообщем тему можно закрывать сдел загрузку по одной картинке в цикле.
     
  4. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    861
    Симпатии:
    132
    Если API даёт возможность загрузки нескольких файлов, всё-таки лучше использовать её.