Как мне выполнить загрузку в медиа-поле типа коллекции из nextjs14 в Strapiv4?Javascript

Форум по Javascript
Ответить
Гость
 Как мне выполнить загрузку в медиа-поле типа коллекции из nextjs14 в Strapiv4?

Сообщение Гость »

Я пытаюсь создать страницу для загрузки файлов в «тип контента», называемый inscricoes, но пока безуспешно.
Вот мой код: https://pastebin.com/SELMPuRz
В этом разделе последние три вызова formData.append были представлены позже, но в данном случае они не имеют особого значения. случай:

Код: Выделить всё

const formData = new FormData();
Array.from(files).forEach((file) => {
formData.append("files", file); // Adding each file
});

formData.append("ref", "api::inscricao.inscricao"); // The content type where the file will be stored
formData.append("refId", inscricaoId); // ID of the "inscricao" to be updated
formData.append("field", "fileLink"); // The field where the file will be saved
Загрузка файла работает хорошо:

Код: Выделить всё

const uploadRes = await fetch("https://api.pnp.cv/api/upload", {
method: "POST",
body: formData,
});
Однако я пытался вручную добавить тип носителя, и работают только titulo: file.name и publico: true. Ficheiro.data всегда возвращает значение null:

Код: Выделить всё

const existingFiles = inscricaoData.data.attributes.fileLink || [];

const fileIds = [
...existingFiles, // Keep the existing files
...uploadData.map((file) => ({
titulo: file.name, // File name
publico: true,
ficheiro: {
data: {
attributes: {
id: file.id, // File ID
name: file.name,
url: file.url, // Ensure that the `url` field is returned
mime: file.mime, // MIME type of the file
size: file.size, // File size
},
},
},
})),
];
Это результат после загрузки:

Код: Выделить всё

{
"data": {
"id": 2,
"attributes": {
"NIF": "456564",
"url": "626179ff-3bba-4e98-8469-58ef4a8e14ae",
"code": "pnp-i",
"nome_completo": "Ailtom Duarte",
"email": "adidas.coyas@gmail.com",
"sede": "Latada",
"telefone": "2389536269",
"categoria": "Branding",
"nome_projeto": "TerraSystem",
"con_criativo": "asasdsfasfasfasfs adfdsfd sfds fdfs ds fsd dsf dfs",
"coord_prod": "yjygjyg",
"dir_foto": "sdfdsf",
"dir_art": "kuhuuluhhu",
"realizador": "sdfsdf",
"autor_jingle": "sdfsdf",
"designer": "fdsfdsfds",
"outras_consideracoes": "fdsfdsfdsf",
"data_producao": "2024-12-24",
"data_divulgacao": "2024-12-16",
"data_apresentacao_publica": "2024-12-25",
"editor": "sdfsd",
"createdAt": "2024-05-01T11:59:56.499Z",
"updatedAt": "2025-01-05T02:04:52.681Z",
"publishedAt": "2024-11-06T12:49:14.559Z",
"fileLink": [
{
"id": 29,
"titulo": "20241031_114101-removebg-preview.png",
"publico": true,
"ficheiro": {
"data": null
}
}
]
}
},
"meta": {}
}
Что мне действительно нужно, так это загрузить несколько файлов в поле fileLink, где ficheiro — это поле мультимедиа.

Код: Выделить всё

"fileLink": [
{
"id": 29,
"titulo": "20241031_114101-removebg-preview.png",
"publico": true,
"ficheiro": {
"data": null
}
}
]
как это реализовать?
Если есть лучшее решение, дайте мне знать.

Подробнее здесь: https://stackoverflow.com/questions/793 ... 4-to-strap
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»