Для загрузки изображения в альбом на imgur.com мы используем это информация и это код:
$image = file_get_contents($_FILES['upload']['tmp_name']);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://imgur-apiv3.p.mashape.com/3/image');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Client-ID ' . $client_id ));
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'X-Mashape-Key: ' . $xmash ));
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/x-www-form-urlencoded' ));
curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'image' => base64_encode($image) ));
curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'album' => $album_id ));
curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'type' => 'base64' ));
curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'name' => 'test_name' ));
curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'title' => 'test title' ));
curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'description' => 'blablabla' ));
$result= curl_exec($ch);
var_dump($result);
curl_close($ch);
но в результате мы получаем ошибку Invalid image type
,
Скажите пожалуйста, почему мы получаем ошибку и как загрузить изображение в альбом?
П.С .: Мы тестовая коммерция.
Перед отправкой base64 убедитесь, что ваше изображение правильно структурировано.
$baseContent = "";
if (isset($_FILES['upload']['tmp_name'])) {
$imgbinary = fread(fopen($_FILES['upload']['tmp_name'], "r"), filesize($_FILES['upload']['tmp_name']));
$baseContent = 'data:image/png;base64,' . base64_encode($imgbinary);
}
Это установит $baseContent
var to base64 .. Затем просто перейдите к вашему запросу:
curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'image' => $baseContent ));
Похоже, что это не правильно форматирования. Я не проверил это полностью, но это должно гарантировать, что у вас есть правильный base64.
Других решений пока нет …