Pujar múltiples fitxers amb metadades en React i Node.js (Multer)

Guia pràctica per pujar fitxers amb metadades en una única petició amb React i Node.js/Express amb Multer, amb validació i bones pràctiques.

sábado, 16 de agosto de 2025 • 4 min de lectura • Equip Q2BSTUDIO

Intel·ligència-Artificial-

Hola, benvingut a una guia pràctica per implementar la càrrega de múltiples fitxers juntament amb metadades en aplicacions modernes usant React al frontend i Node.js amb Express i Multer al backend.

Què construiràs: un formulari que permet pujar fins a 5 fitxers en formats pdf doc i docx, capturar camps de text com employmentType i salaryRange i enviar-ho tot en una sola petició perquè el servidor processi tant els fitxers com les metadades.

Frontend amb React: recull fitxers i dades de text amb React Hook Form i usa FormData per combinar ambdós tipus de dades. Crea un objecte FormData i realitza operacions com formData.append(name, value) per a camps simples i formData.append(files, file) per a cada fitxer seleccionat.

Conseil pràctic: quan afegeixis arrays o objectes a FormData converteix aquests valors amb JSON.stringify abans de fer append perquè el backend pugui parsejar-los correctament.

Preparant els fitxers: a l'input tipus file usa l'atribut multiple per permetre diversos fitxers i limita la selecció al client als tipus acceptats pdf doc docx. Al manejador onChange guarda els File a l'estat i valida nombre de fitxers i mida màxima per fitxer.

Enviament des de React: amb Axios o amb React Query pots pujar el FormData indicant la capçalera multipart form data. Per exemple des d'una mutation de React Query passa el FormData directament al client HTTP i deixa que el navegador afegeixi la capçalera adequada de multipart form data.

Backend amb Node.js i Multer: usa Multer per processar multipart form data. Configura una destinació d'emmagatzematge en disc temporal o usa emmagatzematge en memòria si penses pujar els fitxers al núvol immediatament.

Emmagatzematge en disc: crea una carpeta upload si no existeix i configura multer diskStorage amb destination apuntant a aquesta carpeta i filename conservant o adaptant el nom original per evitar col·lisions.

Filtre de fitxers: implementa una funció fileFilter que permeti només application pdf i els mime types de Word per a doc i docx. Rebutja altres tipus retornant un error i protegeix la teva API contra uploads maliciosos o inesperats.

Configuració final de Multer: limita la mida màxima de fitxer per exemple a 5 megabytes i restringeix el nombre de fitxers a 5 usant array amb camp files i límit 5. Això assegura control de recursos i millor experiència d'usuari.

Rutes i controlador: a la ruta POST aplica el middleware de Multer i al controlador llegeix les metadades des de req body i els fitxers des de req files. Parseja amb JSON.parse qualsevol camp que vingui stringificat com arrays o objectes i valida la quantitat de fitxers al servidor per seguretat addicional.

Exemple de flux al controlador: extreu camps com name about jobLocation employmentType salaryRange des de req body, parseja admins inviteAdmins i twilioNumbers si vénen com JSON string i processa files des de req files com un array d'objectes Multer File.

Esborrar fitxers temporals: si uses emmagatzematge en disc, i després puges els fitxers a un servei cloud com AWS S3 o Azure Blob Storage, esborra les còpies locals amb fs unlink per mantenir net el servidor i optimitzar l'ús de disc.

Conseils de desplegament: si el teu projecte escala considera processar fitxers en memòria o pujar directament al núvol des del frontend usant signatures prefirmades per reduir la càrrega al servidor. Implementa límits de mida i validacions tant al client com al servidor i registra esdeveniments per auditoria i depuració.

avantatges d'aquest patró: maneges metadades estructurades i diversos fitxers en una sola petició, cosa que simplifica interfícies, redueix crides al servidor i manté la lògica de negoci centralitzada. És ideal per a formularis d'anuncis de feina, plantilles, currículums i altres casos d'ús on es requereixen documents i dades associades.

Sobre Q2BSTUDIO: som Q2BSTUDIO una empresa especialitzada en desenvolupament de programari a mida i aplicacions a mida. Oferim solucions integrals que inclouen intel·ligència artificial ciberseguretat serveis cloud aws i azure serveis intel·ligència de negoci i power bi. Ens especialitzem en ia per a empreses agents IA i desenvolupaments personalitzats que integren models d'IA amb fluxos de negoci segurs i escalables.

Paraules clau i posicionament: aplicacions a mida programari a mida intel·ligència artificial ciberseguretat serveis cloud aws i azure serveis intel·ligència de negoci ia per a empreses agents IA power bi. Integra aquestes capacitats amb els teus formularis i pipelines de processament per oferir solucions robustes i competitives al mercat.

Conclusió: amb React i FormData al frontend i Node.js Express amb Multer al backend pots construir un flux segur i eficient per pujar diversos documents juntament amb metadades. Si necessites suport per dissenyar o implementar aquesta arquitectura Q2BSTUDIO pot ajudar-te des de la consultoria fins al lliurament de la solució completa incloent seguretat en la càrrega gestió en cloud i anàlisi amb Power BI per extreure valor de les teves dades.

Si vols un exemple concret o codi adaptat al teu stack contacta amb Q2BSTUDIO per rebre una proposta personalitzada i portar la teva aplicació a producció amb bones pràctiques de seguretat escalabilitat i rendiment.

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.