Les chargements de fichiers échouent pour les noms de fichier contenant des caractères spéciaux dans AEM Forms

Les chargements de fichiers via le Forms adaptatif dans AEM Forms On-prem 6.5 échouent lorsque les noms de fichier contiennent des caractères spéciaux ou Unicode. Ce problème se produit lors des envois de formulaires en plusieurs parties qui utilisent une action d’envoi personnalisée qui stocke les fichiers dans Azure Blob Storage via un connecteur cloud. Lors de l’extraction du fichier dans le gestionnaire d’envoi, des méthodes telles que part.getName() remplacent incorrectement les caractères Unicode par « ??? » ou « ? », ce qui perturbe le mappage des noms de fichier et empêche les chargements réussis.

Pour résoudre ce problème, utilisez la méthode getSubmittedFileName() pour récupérer avec précision les noms de fichier avec des caractères spéciaux et garantir des chargements fiables vers Azure Blob Storage.

Description description

Environnement

  • Produit : AEM Forms
  • Version : v6.5

Problème/Symptômes

  • Les noms de fichier avec des caractères spéciaux s’affichent sous la forme « ??? » ou « ? » lorsqu’elle est récupérée à l’aide de part.getName().
  • La méthode request.getParts() ne renvoie pas toutes les pièces jointes si les noms de fichier contiennent des caractères Unicode.
  • Les chargements échouent pour les fichiers dont le nom contient des caractères Unicode spéciaux, en particulier lors des envois de formulaires en plusieurs parties.
  • Un codage de nom de fichier incorrect affecte les opérations de stockage d’objets blob, empêchant les chargements réussis.

Résolution resolution

Pour résoudre ce problème, mettez à jour la logique de chargement de fichier pour utiliser getSubmittedFileName() au lieu de getName(). Cela permet de s’assurer que les noms de fichier contenant des caractères spéciaux ou Unicode sont correctement récupérés et traités. Procédez comme suit :

  1. Remplacez tous les appels à part.getName() par part.getSubmittedFileName() dans votre code. Cette méthode récupère le nom de fichier d’origine, y compris les caractères spéciaux ou Unicode.

  2. Testez le code mis à jour à l’aide de fichiers d’exemple avec différents types de noms de fichier pour confirmer le bon comportement. Par exemple,

    code language-none
    // Before (problematic) String filename = part.getName();     // After (fixed) String filename = part.getSubmittedFileName();
    
  3. Déployez le code mis à jour en production et vérifiez que les chargements de fichiers fonctionnent dans tous les environnements et plateformes.

En effectuant cette modification, les noms de fichier sont traités avec précision, quel que soit le jeu de caractères, ce qui permet de réussir les chargements même pour les fichiers contenant des caractères spéciaux ou Unicode.

Lecture connexe

Importation et exportation de ressources vers AEM Forms dans le Guide de l’utilisateur d’AEM 6.5

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f