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:

  1. Substitua todas as chamadas para part.getName() por part.getSubmittedFileName() no seu código. Este método recupera o nome de arquivo original, incluindo caracteres especiais ou Unicode.

  2. 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();
    
  3. 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

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