Здравствуйте! У меня такой вопрос. Я использую
vk api. Мне нужно отправить фото на сервер. При написание через curl, у меня получилось это сделать, однако когда я попытался использовать Guzzle то ничего не отправляется.
$upload_url = 'www.example.com'; // это сервер на который нужно постом отправить фото
$image_path = dirname(__FILE__).'/temp.jpg';
$cfile = curl_file_create($pic,'image/jpeg','temp.jpg');
$ch = curl_init($upload_url);
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);
в этом случае все работает. Но если я использую Guzzle, то выдает ошибку, что расширение не подходит, однако через курл он ее грузит. Пробовал вот так:
$pic = 'path/to/image/';
$arr = [
'contents' => Psr7\Utils::tryFopen($pic, 'r'),
'name' => 'temp.jpg', // название файла
];
$arr1['file'] = $arr;
$upload_url = $response['response']['upload_url']; // адрес сервера на который нужно отправить
$data1 = $client->request('POST', $upload_url, $arr)->getBody();
$response = json_decode($data1->getContents(), true);