Добавил еще ведущие нули к миллисекундам, если кому-то еще когда-то этот код понадобится
log = function (text, color, define){ var id, time, thread, logHtml, textLog; define = (typeof define == 'string') ? define.split(/[\s,.|:;]+/g) : define; if(typeof define === 'object' && define !== null){ if(Array.isArray(define)){ id = define.indexOf('id') > -1; time = define.indexOf('time') > -1; thread = define.indexOf('thread') > -1; } else{ id = define.id == true; time = define.time == true; thread = define.thread == true; } } else id = time = thread = true; id = id ? '<a href="action://action' + ScriptWorker.GetCurrentAction() + '" style="color:gray;">[' + ScriptWorker.GetCurrentAction() + ']</a>' : ''; time = time ? ' ' + getTime() : ''; thread = thread ? ' Поток №' + thread_number() : ''; logHtml = (id || time || thread) ? id + '<span style="color: white">' + time + thread + ' : </span>' : ''; logHtml += '<span style="color:' + (color ? color : 'white') + '">' + text + '</span>'; textLog = '[' + ScriptWorker.GetCurrentAction() + ']' + time + thread + ' : ' + text function getTime(){ var checkTime = function(i){ return (i < 10) ? "0" + i : i; }; var checkMilliSeconds = function(ms){ if (ms < 10) { return "00" + ms; } else if (ms < 100) { return "0" + ms; } else { return ms; } }; var d = new Date(); var hh = checkTime(d.getHours()); var mm = checkTime(d.getMinutes()); var ss = checkTime(d.getSeconds()); var ms = checkMilliSeconds(d.getMilliseconds()); return '[' + hh + ':' + mm + ':' + ss + '.' + ms + ']'; }; Logger.WriteHtml(logHtml, textLog); }Как правильно отправить image/jpeg POST запросом в BAS ?
-
Как правильно отправить image/jpeg POST запросом в BAS ?
В двух словах, нужно добавить материал на сайт POST запросом. Через захват HTTP запросов удалось получить правильный POST запрос "multipart/form-data", и если туда подставлять переменные и текст без файла, то всё нормально отправляется.
Но с если с изображением, то приходит сообщение:Материал добавлен.
Не загружено изображение: Ошибка чтения файлаПри этом, если через браузер отправлять, то все отправляется, а HTTP перехватчик POST запросов получает форму multipart, где имеется вот такая часть:
------WebKitFormBoundaryK73tNFrXYQOuO6LO
Content-Disposition: form-data; name="file1"; filename="foto.jpg"
Content-Type: image/jpegBINARY DATA
------WebKitFormBoundaryK73tNFrXYQOuO6LOА если использовать конструктор данных запроса, то уже ругается BAS, что не удалось отправить файл при отправке, хотя добавляю файл через кнопку " + Добавить как файл", тип содержимого прописан "multipart".
-
@profitget said in Как правильно отправить image/jpeg POST запросом в BAS ?:
А если использовать конструктор данных запроса, то уже ругается BAS, что не удалось отправить файл при отправке, хотя добавляю файл через кнопку " + Добавить как файл", тип содержимого прописан "multipart".
Значит, что то не так делаете. Посмотрите темы на форуме, как другие люди отправляют... Вроде бы проекты можно найти рабочие.
-
@uraabk , да, только вот что? BAS выдаёт сообщение "Не удалось загрузить файл", при этом отправку обрывает именно на этой части передаваемого сообщения:
--jpyjbaufhdeoztmyqwkgedmnysbrlexbseptrwgo
Content-Disposition: form-data; name="file1"; filename="foto.jpg"
Content-Type: image/jpeg����
Добавлял в конструктор так: "file1","file://foto.jpg"
На вики написано, что для содержимого "multipart/form-data" после пустой строки должно быть "двоичное содержимое первой фотографии":
--Asrf456BGe4h
Content-Disposition: form-data; name="AttachedFile2"; filename="horror-photo-2.jpg"
Content-Type: image/jpeg
(пустая строка)
(двоичное содержимое второй фотографии)А BAS отправляет ����
Или так и должно быть? -
@profitget said in Как правильно отправить image/jpeg POST запросом в BAS ?:
А BAS отправляет ����
Или так и должно быть?Так и должно быть
-
@gr-al-ni said in Как правильно отправить image/jpeg POST запросом в BAS ?:
@profitget Тема уже довольно старая, но если не ошибаюсь вы на запросах постили на пинтерест, сегодня столкнулся с такой же проблемой, если не секрет как вы её решили?
Пользователь указал решение:
@profitget said in Как правильно отправить image/jpeg POST запросом в BAS ?:
@xclsv said in Как правильно отправить image/jpeg POST запросом в BAS ?:
Данные необходимо передавать в формате base64
А ясно... Вопрос решён, всем спасибо за подсказки...
-
@fox Это было то что я сделал в первую очередь когда прочитал тему, сделал запрос в конструкторе и отправил в бас64 статус ответа был 404
тело запроса
--mnzjjfqcopwyftypxhffrszzumfmjhjookhyftwd
Content-Disposition: form-data; name=""; filename="file.jpg"
Content-Type: image/jpeg����
когда делаю запрос без конструктора статус ответа 200, но ответ {"success": false, "error": "Uh oh! We're having trouble with that one. Try again, or pick a new image."} то есть картинка не принимается
тело запроса
------WebKitFormBoundarynFJWuhgHBpXTNUtd
Content-Disposition: form-data; name="img"; filename="blob.jpg"
Content-Type: image/jpeg����
-
@gr-al-ni said in Как правильно отправить image/jpeg POST запросом в BAS ?:
@fox Это было то что я сделал в первую очередь когда прочитал тему, сделал запрос в конструкторе и отправил в бас64 статус ответа был 404
тело запроса
--mnzjjfqcopwyftypxhffrszzumfmjhjookhyftwd
Content-Disposition: form-data; name=""; filename="file.jpg"
Content-Type: image/jpeg����
когда делаю запрос без конструктора статус ответа 200, но ответ {"success": false, "error": "Uh oh! We're having trouble with that one. Try again, or pick a new image."} то есть картинка не принимается
тело запроса
------WebKitFormBoundarynFJWuhgHBpXTNUtd
Content-Disposition: form-data; name="img"; filename="blob.jpg"
Content-Type: image/jpeg����
Вы ранее загружали картинки через http запросы?
-
@gr-al-ni said in Как правильно отправить image/jpeg POST запросом в BAS ?:
@fox было дело)
Значит вы что то делаете не так
:DПрикладывайте скрипт, посмотрим -
0_1570048687035_test.xml
здесь мой запрос, в конструкторе и без -
@gr-al-ni С вашим примером сложно что-то сказать, как его проверить без авторизации? ) Но навскиду скажу, что не надо читать файл, а потом его преобразовывать в base64, у экшена чтение файла сразу есть такая возможность.

Опять же вы можете просто указать в конструкторе, что это файл. Разницы нет, если все правильно сделать!