Datei-Uploads schlagen bei Dateinamen mit Sonderzeichen in AEM Forms fehl

Datei-Uploads über Adaptive Forms in AEM Forms On-Premise 6.5 schlagen fehl, wenn Dateinamen Sonderzeichen oder Unicode-Zeichen enthalten. Dieses Problem tritt bei mehrteiligen Formularübermittlungen auf, die eine benutzerdefinierte Übermittlungsaktion verwenden, die Dateien in Azure Blob Storage über einen Cloud-Connector speichert. Während der Dateiextraktion im Übermittlungs-Handler ersetzen Methoden wie part.getName() fälschlicherweise Unicode-Zeichen durch "???“ oder "?“, wodurch die Zuordnung von Dateinamen unterbrochen und erfolgreiche Uploads verhindert werden.

Um dies zu beheben, verwenden Sie die getSubmittedFileName()-Methode, um Dateinamen mit Sonderzeichen genau abzurufen und zuverlässige Uploads in Azure Blob Storage sicherzustellen.

Beschreibung description

Umgebung

  • Produkt: AEM Forms
  • Version: v6.5

Problem/Symptome

  • Dateinamen mit Sonderzeichen werden als "???“ oder "?“ angezeigt Beim Abrufen mit part.getName().
  • Die request.getParts()-Methode gibt nicht alle Anhänge zurück, wenn Dateinamen Unicode-Zeichen enthalten.
  • Uploads schlagen bei Dateien mit Unicode-Sonderzeichen im Namen fehl, insbesondere bei mehrteiligen Formularübermittlungen.
  • Eine falsche Codierung von Dateinamen wirkt sich auf Blob-Speichervorgänge aus und verhindert erfolgreiche Uploads.

Auflösung resolution

Um das Problem zu beheben, aktualisieren Sie die Datei-Upload-Logik so, dass getSubmittedFileName() anstelle von getName() verwendet wird. Dadurch wird sichergestellt, dass Dateinamen mit Sonderzeichen oder Unicode-Zeichen korrekt abgerufen und verarbeitet werden. Führen Sie folgende Schritte aus:

  1. Ersetzen Sie alle Aufrufe von part.getName() durch part.getSubmittedFileName() in Ihrem Code. Diese Methode ruft den ursprünglichen Dateinamen ab, einschließlich Spezial- oder Unicode-Zeichen.

  2. Testen Sie den aktualisierten Code mithilfe von Beispieldateien mit verschiedenen Arten von Dateinamen, um das korrekte Verhalten zu bestätigen. So wird beispielsweise

    code language-none
    // Before (problematic) String filename = part.getName();     // After (fixed) String filename = part.getSubmittedFileName();
    
  3. Stellen Sie den aktualisierten Code für die Produktion bereit und überprüfen Sie, ob Datei-Uploads in allen Umgebungen und Plattformen funktionieren.

Durch diese Änderung werden Dateinamen unabhängig vom Zeichensatz genau verarbeitet, sodass ein erfolgreiches Hochladen auch für Dateien mit Spezial- oder Unicode-Zeichen möglich ist.

Verwandtes Lesen

Importieren und Exportieren von Assets in AEM Forms im Benutzerhandbuch zu AEM 6.5

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