У меня была проблема с curl запросом и формированием массива картинок, решил так, прикрепляю код с функциями
//Основной код
//работа с картинками. файл должен хранится на сервере, откуда отправляется запрос
$img_src = "@".dirname(__FILE__)."/s.jpg";
$post_params = array(
"file1" => $img_src,
);
UploadImageToAlbum($post_params);
//Код функций
public function UploadImageToAlbum($images_array,$album_id,$group_id,$caption="")
{
//Получаем url для загрузки
$upload_url = json_decode($this->APIMethod('photos.getUploadServer',"album_id=$album_id&group_id=$group_id&v=5.62"))->response->upload_url;
//Отправляем POST запрос
$result = $this->POSTQuery($upload_url,$images_array);
//Получаем параметры для сохранения
$imgparams = array(
"group_id" => "//id группы",
"server" => $result->server,
"photos_list" => stripslashes($result->photos_list),
"aid" => $result->aid,
"hash" => $result->hash,
"caption" => $caption
);
//Сохраняем на сервер || вместо ApiMethod, сформировать запрос с соответствующими параметрами
$this->APIMethod('photos.save',$imgparams);
}
public function POSTQuery($url,$post_params)
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_params);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data; charset=UTF-8'));
$out = json_decode(curl_exec($curl));
curl_close( $curl );
return $out;
}