Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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"
    }
  ]
}


Подскажите, как правильно загружать картинки к записям?
Ответить с цитированием
  #2 (permalink)  
Старый 19.11.2023, 21:08
Аспирант
Отправить личное сообщение для ВОВАН23 Посмотреть профиль Найти все сообщения от ВОВАН23
 
Регистрация: 06.11.2023
Сообщений: 32

Есть предложение полудше. Слышал такой анимационный игровой движок.

www.pointjs.ru и www.mult-uroki.ru тоже самое. Вот с этой штукой ты сможешь сделать свою игру в 3 раза быстрее.
Ответить с цитированием
  #3 (permalink)  
Старый 19.11.2023, 21:10
Аспирант
Отправить личное сообщение для ВОВАН23 Посмотреть профиль Найти все сообщения от ВОВАН23
 
Регистрация: 06.11.2023
Сообщений: 32

Но там нет eventlistener. Там чуть по другому. Как в Pascal или Basic
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ленивая загрузка изображений через Promise. Цепочка. Duda.Ml1986@gmail.com Events/DOM/Window 11 12.02.2019 11:38
DLE загрузка изображений через дополнительное поле armn555 Общие вопросы Javascript 1 23.08.2017 10:17
DLE загрузка изображений через дополнительное поле armn555 Элементы интерфейса 0 18.08.2017 11:08
Предварительная загрузка изображений для слайдера domius Ваши сайты и скрипты 0 10.06.2014 15:38
Массовая загрузка изображений ybiza AJAX и COMET 3 15.05.2011 23:02