|
Отправка картинки через POST и параметры в формате JSON 1c | ☑ | ||
---|---|---|---|---|
0
Ruslan_
culeiman 01.02.18
✎
15:55
|
Приветствую, помогите кто в теме, надо отправить post картинку с параметрами в формате JSON, не могу понять куда пихать строку JSON:
ИмяФайлаОтправки = ПолучитьимяВременногоФайла("txt"); Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", ""); ЗаписьТекста = Новый ЗаписьТекста(ИмяФайлаОтправки); ЗаписьТекста.ЗаписатьСтроку("--"+boundary); ЗаписьТекста.ЗаписатьСтроку("Content-Disposition: form-data; name=""file""; filename=""photo.jpg"""); ЗаписьТекста.ЗаписатьСтроку("Content-Type: image/jpeg"); ЗаписьТекста.ЗаписатьСтроку(""); ЗаписьТекста.Записать(Base64Строка(Новый ДвоичныеДанные(ИмяФайлаДанных))); ЗаписьТекста.ЗаписатьСтроку(""); ЗаписьТекста.ЗаписатьСтроку("--"+boundary+"--"); ЗаписьТекста.Закрыть(); ФайлОтправки = Новый Файл(ИмяФайлаОтправки); РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер()); // передадим данные на сервер Заголовки = Новый Соответствие(); Заголовки.Вставить("Content-Type", "multipart/form-data, boundary="+boundary); Заголовки.Вставить("Content-Lenght", РазмерФайлаОтправки); ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, " ", Истина); Запись = Новый ЗаписьJSON; Запись.ПроверятьСтруктуру = Истина; Запись.УстановитьСтроку(ПараметрыJSON); Запись.ЗаписатьНачалоОбъекта(); Запись.ЗаписатьИмяСвойства("id"); Запись.ЗаписатьЗначение(Код); Запись.ЗаписатьКонецОбъекта(); СтрокаJSON = Запись.Закрыть(); ИмяФайлаОтвета = ПолучитьИмяВременногоФайла(); Если СтруктураНастроек.ЗащищенноеСоединение Тогда Порт = 443; Соединение = Новый ЗащищенноеСоединениеOpenSSL; Иначе Порт = 80; Соединение = Неопределено; КонецЕсли; HTTPСоединение = Новый HTTPСоединение(СтруктураНастроек.Сервер, Порт, СтруктураНастроек.Логин, СтруктураНастроек.Пароль,,,Соединение); Результат = HTTPСоединение.ОтправитьДляОбработки(ИмяФайлаОтправки, "/api/import/files/", ИмяФайлаОтвета, Заголовки); ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.ОткрытьФайл(ИмяФайлаОтвета); Данные = ПрочитатьJSON(ЧтениеJSON, Ложь); ЧтениеJSON.Закрыть(); |
|||
1
Ruslan_
culeiman 01.02.18
✎
16:36
|
UP
|
|||
2
dezss
01.02.18
✎
16:43
|
Так это ж ты куда-то отправляешь, вот там пусть тебе и ответят.
Вообще обычно его в тело пихают, но у тебя там файл. Может в тот файл и свой json запихай. |
|||
3
drcrasher
01.02.18
✎
16:44
|
(2) а не логичнее картинку в джейсон сложить? всё равно бейс64строка
|
|||
4
dezss
01.02.18
✎
16:45
|
(3) да какая разница что логичнее, важно как это будут разбирать на принимающей стороне.
|
|||
5
Сергиус
01.02.18
✎
16:59
|
(0)УстановитьТелоИзДвоичныхДанных(<Данные>), можно попробовать эту функцию.
|
|||
6
dezss
01.02.18
✎
17:01
|
(5) он и так тело из файла устанавливает...он не знает, куда бы еще и json запихать, насколько я понял...
|
|||
7
Ruslan_
culeiman 01.02.18
✎
17:09
|
ребят я кину описание, может я не правильно понял
https://cdn1.savepice.ru/uploads/2018/2/1/8e9586df9d1435d1fc004eef2b4a609e-full.jpg |
|||
8
Ruslan_
culeiman 01.02.18
✎
17:16
|
там уже не json, а обычный multipart form data. В ответ прийдет ID сущность, вот этот ID необходимо отправлять в PUT запросе как {"file": id}
а вот ответ тех. поддержки |
|||
9
dezss
01.02.18
✎
17:20
|
(8) ничего не понятно.
1) ты отправляешь файл, 2) тебе приходит его id, 3) ты следом отправляешь его id? |
|||
10
drcrasher
01.02.18
✎
17:25
|
(9) ну чо не ясно то?
1. отправляют картинку на сервак 2. сервак принимает картинку и возвращает айди 3. этот айди нужно вставить среди прочих букв с джейсон и пульнуть его на сервер 4. .... 5. профит |
|||
11
dezss
01.02.18
✎
17:27
|
(10) а сам сервак не знает тот айди, который он возвращает для этого файла?
|
|||
12
dezss
01.02.18
✎
17:27
|
(10) + кстати, у тебя до профита должен еще быть пункт с кальсонами)))
|
|||
13
drcrasher
01.02.18
✎
17:30
|
(10) сервак обязан всех помнить чтоле?
он вернул айди временного файла, с которым клиент должен что-то сделать. для этого и возвращается/передаётся айди файла. имя там, описание товара, ещё чонить, фиг знает, что у тс за задача стоит. не прислал запрос с айдишником - крон подумал и через некоторое время грохнул временный файл |
|||
14
drcrasher
01.02.18
✎
17:30
|
(13) -> (11)
|
|||
15
dezss
01.02.18
✎
17:33
|
(13) так изначально ТС-у было сказано, уточнить у сервака, что именно ему надо
|
|||
16
Ruslan_
culeiman 02.02.18
✎
14:02
|
подскажите: отправляю картинку, а сервер отвечает: Значение не должно быть пустым.
|
|||
17
Ruslan_
culeiman 02.02.18
✎
14:03
|
(16) поле tarfget - Значение не должно быть пустым. вот так
|
|||
18
Ruslan_
culeiman 02.02.18
✎
14:04
|
(15) тьфу блин target
|
|||
19
drcrasher
02.02.18
✎
14:14
|
(16) сорян, телепаты ушли бухать
|
|||
20
Ruslan_
culeiman 02.02.18
✎
14:25
|
(19) если про код, то он тот же в (0). Пятница уже у телепатов?)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |