Нужно отправить файл (изображение) на этот сайт. У них есть API. Пробую отправлять с локального сайта (на OpenServer'e), если подставляю адрес картинки в интернете, то все норм, а если указываю таким же образом (полный URL) на своем локальном "сайте", то выдает ошибку 403 (ошибка на ресурс).
$img_name_loc = '33.jpg';
// $ch = curl_init('http://uploads.ru/api?upload=http://www.bugaga.ru/uploads/posts/2017-03/1488368729_v-parke-yellouston-11.jpg&thumb_width=800&format=json'); // <- так работает
$ch = curl_init('http://uploads.ru/api?upload=http://site.loc/uploads/'.$img_name_loc.'&thumb_width=800&format=json'); // <- **так НЕ работает**
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$html = curl_exec($ch);
curl_close($ch);
в идеале было бы, вообще отправлять напрямую из <input id="uplimg" type="file" accept="image/*">
Подозреваю, что одна из проблем в том, что это локалка.
Действительно проблема в том, что это локалка.
Сайт http://uploads.ru пытается загрузить изображение по переданном Вами адресу условно через file_get_contents
, и если для вас http://test1.ru/33.jpg открывается, то для uploads.ru это будет совершенно другой ресурс, который и отдает ему 403.
В API написано, что
Но, примеров локальной загрузки нету, ВОЗМОЖНО стоит передать просто локальный путь, например как у Вас начале написано - '33.jpg', API определит что нету указания протокола и это локальный путь.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты