На нашем сервисе также существует API для загрузки изображений.
Сервис в настоящее время поддерживает форматы JPEG, JPG, GIF, PNG размером до 10 мегабайт.
API позволяет загружать изображения, как для гостей, так и для зарегистрированных пользователей. Работа с API осуществляется при помощи отправки HTTP-запросов (метод POST) по адресу:
https://api.imageban.ru/v1
Сервер отвечает в формате JSON.
Для доступа к API вам необходимо получить ключи Client ID и Secret Key. Чтобы получить данные ключи перейдите в ваш профиль на сайте
(Скриншот) Пример:
Client ID - обязательный ключ для доступа к API. Позволяет загружать изображения в режиме незарегистрированного пользователя.
Secret Key - ключ для доступа к API с возможностью загрузки изображений в ваш аккаунт.
(не публикуйте ваш секретный ключ)
Авторизация:
Для авторизации доступа к API необходимо отправить заголовок:
Authorization: TOKEN {{ВАШ_CLIENT_ID}}
POST параметр для авторизации:
Параметр | Необходимость | Описание |
---|---|---|
secret_key | Опционально | Ваш Secret key необходим для загрузки изображений в ваш аккаунт на сайте |
Параметр | Необходимость | Описание |
---|---|---|
url | Обязательно | URL изображения |
Параметр | Необходимость | Описание |
---|---|---|
image | Обязательно | Двоичный файл или данные в base64 |
name | Опционально | Имя файла |
В случае успешной загрузки вы получите ответ в формате JSON:
Пример ответа:
{
"data":{
"date":"2016.11.22",
"name":"f15f1afd0e36ba9b18abb006fd6ae76a.png",
"server":"i5.imageban.ru",
"img_name":"logo.png",
"size":"11795",
"res":"210x88",
"link":"http:\/\/i5.imageban.ru\/out\/2016\/11\/22\/f15f1afd0e36ba9b18abb006fd6ae76a.png",
"short_link":"http:\/\/ibn.im\/MT1rbzsPum"
},
"success":true,
"status":200
}
Возвращаемые данные:
Ключ | Описание |
---|---|
date | Дата загрузки |
name | Имя загруженного файла на сервер |
server | Имя сервера где расположено загруженное изображение |
img_name | Оригинальное имя файла |
size | Размер изображения в байтах |
res | Разрешение изображения |
link | Прямая ссылка на изображение |
short_link | Короткая ссылка на страницу с изображением |
deletehash | Хэш для удаления изображения загруженным неавторизованным пользователем |
В случае ошибки вы получите ответ в формате JSON:
{
"error":{
"code":"105",
"message":"Invalid secret key"
}
}
Возвращаемые данные:
Ключ | Описание |
---|---|
code | Код ответа |
message | Текст ошибки |
Возвращаемые ошибки:
Код ошибки | Текст ошибки | Описание |
---|---|---|
100 | Invalid client key | Неверный Client Key |
101 | Image is larger | Размер файла превышает максимально допустимый размер |
102 | No image data | Нет данных изображения |
103 | Invalid image type | Файл не является изображением |
104 | Image failed to upload | Ошибка загрузки изображения |
105 | Invalid secret key | Неверный Secret key |
106 | Wrong URL | Неверный URL изображения |
107 | File reception error | Ошибка при загрузки файла с URL |
108 | Limit of uploaded images from your IP is exceeded for guest | Превышен суточный лимит загрузок для IP адреса |
109 | Exceeded the daily limit of uploaded images for your account | Превышен суточный лимит загрузок для учетной записи |
Пример загрузки файла изображения посредством cURL:
curl -H "Authorization: TOKEN {{ВАШ_CLIENT_ID}}" -F "image=@/tmp/server.png" https://api.imageban.ru/v1
Пример загрузки файла изображения в свой аккаунт посрдеством cURL:
curl -H "Authorization: TOKEN {{ВАШ_CLIENT_ID}}" -F "image=@/tmp/server.png" -F secret_key={{ВАШ_SECRET_KEY}} https://api.imageban.ru/v1
Пример загрузки изображения с URL в свой аккаунт посрдеством cURL:
curl -H "Authorization: TOKEN {{ВАШ_CLIENT_ID}}" -F "url=https://imageban.ru/template/img/logo.png" -F secret_key={{ВАШ_SECRET_KEY}} https://api.imageban.ru/v1
Пример #1 на PHP загрузка изображения с использованием base64 (server.php):
<?php
$filename = $_FILES['img']['tmp_name'];
$handle = fopen($filename, "r");
$data = fread($handle, filesize($filename));
$client_key="{{ВАШ_CLIENT_ID}}";
$pvars = array('name' => 'имя_файла.jpg', 'secret_key' => '{{ВАШ_SECRET_KEY}}', 'image' => base64_encode($data));
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.imageban.ru/v1');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: TOKEN ' . $client_key));
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
$result = json_decode($result ,true);
var_dump($result);
?>
HTML форма для загрузки:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form action="http://_ВАШ_ХОСТ_/server.php" enctype="multipart/form-data" method="post">
<p><input type="file" name="img">
<input type="submit" value="Отправить"></p>
</form>
</body>
</html>
Пример #2 загрузка файла изображения посредством cURL:
<?php
$file = realpath('/tmp/server.png');
$client_key="{{ВАШ_CLIENT_ID}}";
$pvars = array('name' => 'имя_файла.png', 'secret_key' => '{{ВАШ_SECRET_KEY}}', 'image' => '@'.$file);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.imageban.ru/v1');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: TOKEN ' . $client_key));
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
$result = json_decode($result ,true);
var_dump($result);
?>
Пример #3 загрузка изображения c URL:
<?php
$client_key="{{ВАШ_CLIENT_ID}}";
$pvars = array('secret_key' => '{{ВАШ_SECRET_KEY}}', 'url' => 'https://imageban.ru/template/img/logo.png');
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.imageban.ru/v1');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: TOKEN ' . $client_key));
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
$result = json_decode($result ,true);
var_dump($result);
?>
Пример #4 загрузка на HTML + JavaScript:
<!DOCTYPE html>
<meta charset="utf8">
<title>Uploader</title>
<div>Переместите<br><button onclick="document.querySelector('input').click()">Или выберите файл</button></div>
<input style="visibility: collapse; width: 0px;" type="file" onchange="upload(this.files[0])">
<script>
window.ondragover = function(e) {e.preventDefault()}
window.ondrop = function(e) {e.preventDefault(); upload(e.dataTransfer.files[0]); }
function upload(file) {
if (!file || !file.type.match(/image.*/)) return;
document.body.className = "uploading";
var fd = new FormData();
fd.append("image", file);
var xhr = new XMLHttpRequest();
xhr.open("POST", "https://api.imageban.ru/v1");
xhr.onload = function() {
document.querySelector("#link").href = JSON.parse(xhr.responseText).data.link;
document.body.className = "uploaded";
}
xhr.setRequestHeader('Authorization', 'TOKEN {{ВАШ_CLIENT_ID}}');
xhr.send(fd);
}
</script>
<style>
body {text-align: center; padding-top: 100px;}
div { border: 1px solid black; text-align: center; line-height: 200px; width: 300px; margin: auto; font-size: 40px; display: inline-block;}
#link, p , div {display: none}
div {display: inline-block;}
.uploading div {display: none}
.uploaded div {display: none}
.uploading p {display: inline}
.uploaded #link {display: inline}
em {position: absolute; bottom: 0; right: 0}
</style>
<p>Загрузка...</p>
<a id="link">Ваша ссылка</a>
Для бесплатного использования API существуют ограничения для загрузок изображений в сутки: