Как правильно отправить 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/jpeg

    BINARY 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 отправляет ����
    Или так и должно быть?

    Так и должно быть



  • @usertrue спасибо за подсказку, значит такой вариант не катит )))
    Реализуем план "Б" ;)



  • @profitget
    Перехватите запрос фиддлером. Там увидите параметр, который отвечает за передачу данных изображения. Данные необходимо передавать в формате base64.



  • @xclsv said in Как правильно отправить image/jpeg POST запросом в BAS ?:

    Перехватите запрос фиддлером.
    Да ну так заморачиваться, я лучше дедовским методом залью на ftp через старый но надёжный cmd.exe
    XD



  • @xclsv said in Как правильно отправить image/jpeg POST запросом в BAS ?:

    Данные необходимо передавать в формате base64

    А ясно... Вопрос решён, всем спасибо за подсказки...



  • @profitget Тема уже довольно старая, но если не ошибаюсь вы на запросах постили на пинтерест, сегодня столкнулся с такой же проблемой, если не секрет как вы её решили?



  • @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 запросы?



  • @fox было дело)



  • @gr-al-ni said in Как правильно отправить image/jpeg POST запросом в BAS ?:

    @fox было дело)

    Значит вы что то делаете не так :D Прикладывайте скрипт, посмотрим



  • 0_1570048687035_test.xml
    здесь мой запрос, в конструкторе и без



  • @gr-al-ni С вашим примером сложно что-то сказать, как его проверить без авторизации? ) Но навскиду скажу, что не надо читать файл, а потом его преобразовывать в base64, у экшена чтение файла сразу есть такая возможность.0_1570076806396_2019-10-03_112624.png

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



  • @usertrue Спасибо за ответ, читал файл без перевода в бас64, так как пытался отправлять файл как есть, и только в конструкторе переводил в бас64.
    Отправил скрипт с куками в личку, буду рад если найдёте время взглянуть на него.



  • Всем спасибо, вот так всё заработало:
    ------WebKitFormBoundary[[RANDOM_STRING]]
    Content-Disposition: form-data; name="img"; filename="blob"
    Content-Type: image/jpeg

    base64:[[FILE_CONTENT]]
    ------WebKitFormBoundary[[RANDOM_STRING]]--



  • 14
  • 6
  • 2
  • 1
  • 3
  • 2
  • 5
  • 5