Os uploads de arquivo falham para nomes de arquivo com caracteres especiais no AEM Forms
Os uploads de arquivo por meio do Adaptive Forms no AEM Forms no local 6.5 falham quando os nomes de arquivo contêm caracteres especiais ou Unicode. Esse problema ocorre durante envios de formulários de várias partes que usam uma ação de envio personalizada que armazena arquivos no Armazenamento de Blobs do Azure por meio de um conector de nuvem. Durante a extração de arquivos no manipulador de envio, métodos como part.getName() substituem incorretamente caracteres Unicode por "??" ou "?", interrompendo o mapeamento do nome do arquivo e impedindo uploads bem-sucedidos.
Para corrigir isso, use o método getSubmittedFileName() para recuperar com precisão os nomes de arquivo com caracteres especiais e garantir uploads confiáveis para o Armazenamento Azure Blob.
Descrição description
Ambiente
- Produto: AEM Forms
- Versão: v6.5
Problema/Sintomas
- Nomes de arquivos com caracteres especiais são exibidos como "??" ou "?" quando recuperado usando
part.getName(). - O método
request.getParts()não retornará todos os anexos se os nomes de arquivo contiverem caracteres Unicode. - Os uploads falham para arquivos com caracteres Unicode especiais em seus nomes, especialmente durante envios de formulários de várias partes.
- A codificação incorreta do nome de arquivo afeta as operações de armazenamento de blobs, impedindo uploads bem-sucedidos.
Resolução resolution
Para resolver o problema, atualize a lógica de carregamento de arquivo para usar getSubmittedFileName() em vez de getName(). Isso garante que nomes de arquivo com caracteres especiais ou Unicode sejam recuperados e processados corretamente. Siga estas etapas:
-
Substitua todas as chamadas para
part.getName()porpart.getSubmittedFileName()no seu código. Este método recupera o nome de arquivo original, incluindo caracteres especiais ou Unicode. -
Teste o código atualizado usando arquivos de amostra com vários tipos de nomes de arquivo para confirmar o comportamento correto. Por exemplo,
code language-none // Before (problematic) String filename = part.getName(); // After (fixed) String filename = part.getSubmittedFileName(); -
Implante o código atualizado na produção e verifique se os uploads de arquivo funcionam em todos os ambientes e plataformas.
Ao fazer essa alteração, os nomes de arquivo são processados com precisão, independentemente do conjunto de caracteres, permitindo uploads bem-sucedidos mesmo para arquivos com caracteres especiais ou Unicode.
Leitura relacionada
Importar e exportar ativos para o AEM Forms no Guia do Usuário do AEM 6.5