Caricamenti di file non riusciti per i nomi di file con caratteri speciali in AEM Forms
Il caricamento dei file tramite Adaptive Forms in AEM Forms On-Prem 6.5 non riesce se i nomi dei file contengono caratteri speciali o Unicode. Questo problema si verifica durante l’invio di moduli in più parti che utilizzano un’azione di invio personalizzata in cui vengono memorizzati i file nell’archiviazione BLOB di Azure tramite un connettore cloud. Durante l'estrazione del file nel gestore di invio, metodi come part.getName() sostituiscono in modo errato i caratteri Unicode con "???" o "?", interrompendo la mappatura del nome file e impedendo caricamenti riusciti.
Per risolvere il problema, utilizzare il metodo getSubmittedFileName() per recuperare con precisione i nomi dei file con caratteri speciali e garantire caricamenti affidabili nell'archiviazione BLOB di Azure.
Descrizione description
Ambiente
- Prodotto: AEM Forms
- Versione: v6.5
Problema/Sintomi
- I nomi dei file con caratteri speciali vengono visualizzati come "???" o "?" quando recuperato utilizzando
part.getName(). - Il metodo
request.getParts()non restituisce tutti gli allegati se i nomi di file contengono caratteri Unicode. - I caricamenti non riescono per i file il cui nome contiene caratteri Unicode speciali, in particolare durante l’invio di moduli in più parti.
- Una codifica non corretta del nome file influisce sulle operazioni di archiviazione BLOB, impedendo il corretto caricamento.
Risoluzione resolution
Per risolvere il problema, aggiornare la logica di caricamento file in modo da utilizzare getSubmittedFileName() anziché getName(). In questo modo i nomi di file con caratteri speciali o Unicode vengono recuperati ed elaborati correttamente. Segui questi passaggi:
-
Sostituisci tutte le chiamate a
part.getName()conpart.getSubmittedFileName()nel codice. Questo metodo recupera il nome del file originale, inclusi i caratteri speciali o Unicode. -
Verifica il codice aggiornato utilizzando file di esempio con vari tipi di nomi di file per confermare il comportamento corretto. Ad esempio,
code language-none // Before (problematic) String filename = part.getName(); // After (fixed) String filename = part.getSubmittedFileName(); -
Distribuisci il codice aggiornato in produzione e verifica che i caricamenti di file funzionino in tutti gli ambienti e le piattaforme.
Con questa modifica, i nomi dei file vengono elaborati con precisione indipendentemente dal set di caratteri, consentendo caricamenti di successo anche per file con caratteri speciali o Unicode.
Lettura correlata
Importazione ed esportazione di risorse in AEM Forms nella Guida utente di AEM 6.5