Ребят, как через 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"
}
]
}
Подскажите, как правильно загружать картинки к записям?