@serg44

Как загрузить изображений для vk.com через api?

Необходимо загрузить изображение для Товаров в Вконтакте. Получаю адрес для загрузки методом https://vk.com/dev/photos.saveMarketPhoto. После, код ниже должен загрузить изображение, но получаю ошибку ERR_UPLOAD_BAD_IMAGE_SIZE: market photo min size 400x400 Изображения пробовал разные.
$file["file"] = file_get_contents($image_path);
$ch = curl_init($urlUpload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $file);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$upload_data = json_decode(curl_exec($ch), true);

Ответ
Array
(
    [error] => ERR_UPLOAD_BAD_IMAGE_SIZE: market photo min size 400x400
    [bwact] => do_add
    [server] => 638423
    [_sig] => 488b98bab6f2b936b568101b1997cb83
)
  • Вопрос задан
  • 1951 просмотр
Решения вопроса 1
@serg44 Автор вопроса
Нашёл решение. Работающий код:

$image_path = dirname(__FILE__).'/temp.jpg';
$cfile = curl_file_create($image_path,'image/jpeg','temp.jpg');
$ch = curl_init($urlImage);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("file" => $cfile));
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@PavelFokeev
pavl1k.ru
curl_setopt($ch, CURLOPT_POSTFIELDS, array('file'=>'@'.$image_path));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект