Пытаюсь отправить картинку через API VK, получаю адрес сервера, отправляю запрос, вроди как всё работает, но в ответ возвращается пустое поле "photo". Как будто картинку не отправлял. Что я делаю не так?
function build_data_files($boundary, $files){
$data = '';
$eol = "\r\n";
$delimiter = '-------------' . $boundary;
foreach ($files as $name => $content) {
$data .= "--" . $delimiter . $eol
. 'Content-Disposition: form-data; name="' . $name . "\"".$eol.$eol.
'Content-Type: image/png'.$eol
. $content . $eol;
}
$data .= "--" . $delimiter . "--".$eol;
return $data;
}
$VKimgLoadServer = json_decode(file_get_contents($VKimgLoad));
if(isset($VKimgLoadServer -> error))
print_r($VKimgLoadServer);
else{
$files = array(
"photo" => file_get_contents("./img/post/2017-08/201708131447301997.png"),
);
$curl = curl_init();
$boundary = uniqid();
$delimiter = '-------------' . $boundary;
$post_data = build_data_files($boundary, $files);
curl_setopt_array($curl, array(
CURLOPT_URL => $VKimgLoadServer -> response -> upload_url,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $post_data,
CURLOPT_HTTPHEADER => array(
"Content-Type: multipart/form-data; boundary=" . $delimiter,
"Content-Length: " . strlen($post_data)
)
));
$response = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
echo $response;
}