|
Загрузка файла на хостинг картинок | ☑ | ||
---|---|---|---|---|
0
kdenis
16.03.21
✎
16:51
|
Доброго дня!
Есть фото-хостинг с документированным API. https://api.imgbb.com/ Пытаюсь загрузить туда картинку кодом: Строка64 = Base64Строка(ДанныеФайла); // Двоичные данные Строка64 = СтрЗаменить(Строка64, Символы.ПС, ""); Строка64 = СтрЗаменить(Строка64, Символы.ВК, ""); Запрос = Новый HTTPЗапрос(); Запрос.АдресРесурса = "/1/upload?key=ХХХХХХХХХХХХХХХХХХХХХХХХХХ&image=" + Строка64; Соединение = Новый HTTPСоединение("api.imgbb.com", , , , , , Новый ЗащищенноеСоединениеOpenSSL); Ответ = Соединение.ОтправитьДляОбработки(Запрос); Получаю ответ: {"status_code":400,"error":{"message":"Invalid base64 string.","code":120,"context":"Exception"},"status_txt":"Bad Request"} В ДанныеФайла - файл png 50х50 пикселей. Если делаю файла 5х5 пикселей, запрос отрабатывает корректно. Может есть у кого опыт работы с данным хостингом - поделитесь примером. Результаты поисков натолкнули на мысль, что Base64Строка может некорректно кодировать файл. Сравнивал результаты с онлайн кодерам/декодерами - результаты одинаковы. |
|||
1
acht
16.03.21
✎
17:23
|
Не стоит пытатся протаскивать картинку через урл запроса
|
|||
2
acht
16.03.21
✎
17:24
|
Про это, кстати, человечьим языком написано по ссылке на твое апи.
|
|||
3
Kassern
16.03.21
✎
17:30
|
(0) попробуй image=base64ТвояКартинка запихнуть в тело запроса и явно вызови метод POST.
|
|||
4
kdenis
16.03.21
✎
21:47
|
(3) Пробовал и в тело. В итоге дошел до следующего:
Запрос = Новый HTTPЗапрос(); Запрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); //Запрос.Заголовки.Вставить("Content-Type", "image/png"); //Запрос.Заголовки.Вставить("Content-Type", "multipart/form-data"); //Запрос.Заголовки.Вставить("Content-Length", XMLСтрока(Файл.Размер())); Запрос.АдресРесурса = "/1/upload?key=ХХХХХХХХХХХХХХХХХХХХХХХХХ"; Запрос.УстановитьТелоИзСтроки("&image=" + Строка64); Соединение = Новый HTTPСоединение("api.imgbb.com", , , , , , Новый ЗащищенноеСоединениеOpenSSL); Ответ = Соединение.ОтправитьДляОбработки(Запрос); Если "Content-Type" указываю "application/x-www-form-urlencoded", Ответ.КодСостояния = 200, картинка уходит, но пустая. На хостинге новая картинка есть, но содержимого ее нет. Если "Content-Type" указываю "image/png" или "multipart/form-data". Получаю ответ: {"status_code":400,"error":{"message":"Empty upload source.","code":130,"context":"Exception"},"status_txt":"Bad Request"} Видимо, проблема в оформлении заголовка запроса. Буду признателен за наводку. |
|||
5
kdenis
17.03.21
✎
12:43
|
Подниму тему.
|
|||
6
acht
17.03.21
✎
12:55
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |