На нашем сервисе также существует API для загрузки изображений.
Сервис в настоящее время поддерживает форматы JPEG, JPG, GIF, PNG размером до 10 мегабайт.
API позволяет загружать изображения, как для гостей, так и для зарегистрированных пользователей. Работа с API осуществляется при помощи отправки HTTP-запросов по адресу:
https://api.imageban.ru/v1
Сервер отвечает в формате JSON.
Для доступа к API вам необходимо получить ключи CLIENT_ID и SECRET_KEY. Чтобы получить данные ключи перейдите в ваш профиль на сайте
(Скриншот) Пример:

CLIENT_ID - ключ для доступа к API. Позволяет загружать изображения в режиме незарегистрированного пользователя.
SECRET_KEY - ключ для доступа к API с возможностью загрузки изображений в ваш аккаунт.
(не публикуйте ваш секретный ключ)
Авторизация:
Для авторизации доступа к API как гость необходимо отправить заголовок:
Authorization TOKEN {CLIENT_ID}
Для авторизации доступа к API как пользователь необходимо отправить заголовок:
Authorization Bearer {SECRET_KEY}
| Параметр | Формат | Необходимость | Описание |
|---|---|---|---|
| url | string | Обязательно | URL изображения |
| Параметр | Формат | Необходимость | Описание |
|---|---|---|---|
| image | string | Обязательно | Двоичный файл или данные в base64 |
| preview_info | int | Опционально | Показывать информацию на превью (0 — нет, 1 — да) |
| name | string | Опционально | Имя файла |
| album | string | Опционально | ID альбома в который загружается изображение |
{
"data": [
{
"id": "JTXBeN4",
"date": "2022.07.13",
"name": "8b2313babd49d05ff36b8165845fc615.jpeg",
"server": "i5.imageban.ru",
"views": "0",
"description": "",
"img_name": "logo.png",
"favorite": false,
"size": "355593",
"resolution": "2000x3234",
"link": "https://i5.imageban.ru/out/2022/07/13/8b2313babd49d05ff36b8165845fc615.jpeg",
"short_link": "http://ibn.im/i/JTXBeN4"
}
],
"success": true,
"status": 200
}
Возвращаемые данные:
| Ключ | Формат | Описание |
|---|---|---|
| id | string | id изображения |
| date | string | Дата загрузки |
| name | string | Имя загруженного файла на сервер |
| server | string | Имя сервера где расположено загруженное изображение |
| views | integer | Количество просмотров изображения |
| description | string | Описание к изображению (комментарий) |
| img_name | string | Оригинальное имя файла |
| favorite | boolean | Указывает добавлено ли изображение в избранное |
| size | integer | Размер изображения в байтах |
| resolution | string | Разрешение изображения |
| link | string | Прямая ссылка на изображение |
| short_link | string | Короткая ссылка на страницу с изображением |
| delete_hash | string | Хэш для удаления изображения загруженным неавторизованным пользователем |
В случае ошибки вы получите ответ в формате 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 | Превышен суточный лимит загрузок для учетной записи |
| 110 | No auth data | Нет данных для авторизации |
Пример #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', '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 на PHP, загрузка файла изображения посредством cURL:
<?php
$file = realpath('/tmp/server.png');
$client_key="{CLIENT_ID}";
$pvars = array('name' => 'имя_файла.png', '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 на PHP, загрузка изображения c URL:
<?php
$client_key="{CLIENT_ID}";
$pvars = array('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 существуют ограничения для загрузок изображений в сутки:
| Кызардкз нет kizdarkz.net |