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:
-
Ersetzen Sie alle Aufrufe von
part.getName()durchpart.getSubmittedFileName()in Ihrem Code. Diese Methode ruft den ursprünglichen Dateinamen ab, einschließlich Spezial- oder Unicode-Zeichen. -
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(); -
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