Het uploaden van bestanden is mislukt voor bestandsnamen met speciale tekens in AEM Forms

Het uploaden van bestanden via Adaptive Forms in AEM Forms On-prem 6.5 mislukt wanneer bestandsnamen speciale of Unicode-tekens bevatten. Dit probleem doet zich voor tijdens multipart formulierverzendingen die gebruikmaken van een aangepaste verzendactie waarmee bestanden via een cloudconnector worden opgeslagen in Azure Blob Storage. Tijdens het uitpakken van bestanden in de verzendhandler vervangen methoden als part.getName() Unicode-tekens onjuist door '???' of '?', waardoor de bestandstoewijzing wordt onderbroken en het uploaden wordt voorkomen.

U kunt dit verhelpen door bestandsnamen met speciale tekens nauwkeurig op te halen met de methode getSubmittedFileName() en ervoor te zorgen dat bestanden betrouwbaar worden geüpload naar Azure Blob Storage.

Beschrijving description

Omgeving

  • Product : AEM Forms
  • Versie : v6.5

Probleem/symptomen

  • Bestandsnamen met speciale tekens worden weergegeven als "??" of "?" wanneer opgehaald met part.getName() .
  • De methode request.getParts() retourneert niet alle bijlagen als bestandsnamen Unicode-tekens bevatten.
  • Uploaden mislukt voor bestanden met speciale Unicode-tekens in hun naam, vooral tijdens het verzenden van formulieren met meerdere onderdelen.
  • Onjuiste bestandsnaamcodering heeft invloed op blob-opslagbewerkingen, zodat uploads niet succesvol zijn.

Resolutie resolution

Werk de logica voor het uploaden van bestanden bij om getSubmittedFileName() te gebruiken in plaats van getName() . Zo weet u zeker dat bestandsnamen met speciale of Unicode-tekens correct worden opgehaald en verwerkt. Voer de volgende stappen uit:

  1. Vervang alle aanroepen van part.getName() door part.getSubmittedFileName() in de code. Met deze methode wordt de oorspronkelijke bestandsnaam opgehaald, inclusief speciale tekens of Unicode-tekens.

  2. Test de bijgewerkte code met behulp van voorbeeldbestanden met verschillende bestandstypen om het juiste gedrag te bevestigen. Bijvoorbeeld:

    code language-none
    // Before (problematic) String filename = part.getName();     // After (fixed) String filename = part.getSubmittedFileName();
    
  3. Implementeer de bijgewerkte code om te produceren en controleer of het uploaden van bestanden in alle omgevingen en platforms werkt.

Door deze wijziging worden bestandsnamen correct verwerkt, ongeacht de tekenset, zodat bestanden met speciale of Unicode-tekens ook correct kunnen worden geüpload.

Gerelateerde lezing

​ het Invoeren van en het uitvoeren van activa naar AEM Forms ​ in AEM 6.5 Gids van de Gebruiker

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