Показать сообщение отдельно
  #1 (permalink)  
Старый 08.10.2023, 19:58
Кандидат Javascript-наук
Отправить личное сообщение для Raadsert Посмотреть профиль Найти все сообщения от Raadsert
 
Регистрация: 09.12.2021
Сообщений: 100

Загрузка изображений Strapi
Ребят, как через API Strapi загружать изображения?

Читал документацию, там предлагают запихнуть все данные (с картинкой) в FormData и отравить post запросом к Strapi. Вроде так:

const formElement = document.querySelector('form');

  formElement.addEventListener('submit', e => {
    e.preventDefault();

    const request = new XMLHttpRequest();

    const formData = new FormData();

    const formElements = formElement.elements;

    const data = {};

    for (let i = 0; i < formElements.length; i++) {
      const currentElement = formElements[i];
      if (!['submit', 'file'].includes(currentElement.type)) {
        data[currentElement.name] = currentElement.value;
      } else if (currentElement.type === 'file') {
        if (currentElement.files.length === 1) {
          const file = currentElement.files[0];
          formData.append(`files.${currentElement.name}`, file, file.name);
        } else {
          for (let i = 0; i < currentElement.files.length; i++) {
            const file = currentElement.files[i];

            formData.append(`files.${currentElement.name}`, file, file.name);
          }
        }
      }
    }

    formData.append('data', JSON.stringify(data));

    request.open('POST', `${HOST}/restaurants`);

    request.send(formData);


Делаю так же, картинка загружается на сервер, но к созданной записи не прикрепляется. При этом, если даже в админке Strapi зайти в коллекции и явно прикрепить картинку, get запрос всё равно не выдаёт никакой информации об изображении.

Структура коллекции такая:
{
 "title": "string"
 "content": "string"
 "photos": "img"
}


Так же, видел пример по созданию записей в коллекции, и там запрос с добавлением изображений выглядит совсем по другому:

{
  "title": "Restaurant 1",
  "cover": 1,
  "content": [
    {
      "__component": "content.title-with-subtitle",
      "title": "Restaurant 1 title",
      "subTitle": "Cozy restaurant in the valley"
    },
    {
      "__component": "content.image-with-description",
      "image": 1, // user form data to upload the file or an id to reference an exisiting image
      "title": "Amazing photography",
      "description": "This is an amazing photography taken..."
    }
  ],
  "opening_hours": [
    {
      "day_interval": "Tue - Sat",
      "opening_hour": "7:30 PM",
      "closing_hour": "10:00 PM"
    }
  ]
}


Подскажите, как правильно загружать картинки к записям?
Ответить с цитированием