@VladisLove2525
Начинающий программист. Немножко знаю JavaScript

Не могу отправить картинку в form-data как это сделать?

const settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api-eu1.tatum.io/v3/ipfs",
  "method": "POST",
  "headers": {
    "content-type": "multipart/form-data",
    "x-api-key": "REPLACE_KEY_VALUE"
  }
};

Вот такой код мне предлагает документация, но я не понимаю куда вставить свой файл, чтобы отправлять его.
Как вообще это должно работать: клиент вставляет картинку(через input type "file", нажимает на кнопку и срабатывает функция, которая отправляет эту картинку через POST, а после выводит IPFS ссылку. Но я не понимаю в какое место надо вставить эту картинку, чтобы она отправляла...Прикреплю ссылку на документацию
  • Вопрос задан
  • 381 просмотр
Решения вопроса 1
DanArst
@DanArst Куратор тега JavaScript
Гриффиндор в моде при любой погоде!
Что-то наподобие этого. То, что предлагают в документации к API - это просто массив настроек для ajax-запроса. Вам просто стоило добавить туда опцию data.
Документация к jQuery.ajax
Вместо form#myform укажи свой селектор. Ну и конечно вместо REPLACE_KEY_VALUE надо вставить ключ API.
<form action="" id="myform">
    <input type="file" name="file">
    <button type="submit">Отправить</button>
</form>

$('form#myform').submit(function(e) {
    e.preventDefault();
    var formData = new FormData(this);
    const settings = {
        async: true,
        data: formData,
        crossDomain: true,
        url: "https://api-eu1.tatum.io/v3/ipfs",
        method: "POST",
        cache:false,
        contentType: false,
        processData: false,        
        headers: {          
          "x-api-key": "REPLACE_KEY_VALUE"
        }
    }; 
    $.ajax(settings).done(function (response) {
        console.log(response);
    });
});


Имхо такие вещи надо делать не во фронте, а в бэке, ибо зачем светить ключом там, где не стоит.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы