Я пытаюсь создать страницу для загрузки файлов в «тип контента», называемый 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
Я пытаюсь создать страницу для загрузки файлов в «тип контента», называемый inscricoes, но пока безуспешно. Вот мой код: https://pastebin.com/SELMPuRz В этом разделе последние три вызова formData.append были представлены позже, но в данном случае они не имеют особого значения. случай: [code]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 [/code] Загрузка файла работает хорошо: [code]const uploadRes = await fetch("https://api.pnp.cv/api/upload", { method: "POST", body: formData, }); [/code] Однако я пытался вручную добавить тип носителя, и работают только titulo: file.name и publico: true. Ficheiro.data всегда возвращает значение null: [code]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 }, }, }, })), ]; [/code] Это результат после загрузки: [code]{ "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": {} } [/code] Что мне действительно нужно, так это загрузить несколько файлов в поле fileLink, где ficheiro — это поле мультимедиа. [code]"fileLink": [ { "id": 29, "titulo": "20241031_114101-removebg-preview.png", "publico": true, "ficheiro": { "data": null } } ] [/code] как это реализовать? Если есть лучшее решение, дайте мне знать.