Вход

Просмотр полной версии : Загрузка изображений Strapi


Raadsert
08.10.2023, 19:58
Ребят, как через 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"
}
]
}


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

ВОВАН23
19.11.2023, 21:08
Есть предложение полудше. Слышал такой анимационный игровой движок.

www.pointjs.ru и www.mult-uroki.ru тоже самое. Вот с этой штукой ты сможешь сделать свою игру в 3 раза быстрее.

ВОВАН23
19.11.2023, 21:10
Но там нет eventlistener. Там чуть по другому. Как в Pascal или Basic