AEM Forms에 특수 문자가 있는 파일 이름에 대한 파일 업로드가 실패합니다
파일 이름에 특수 또는 유니코드 문자가 포함되어 있는 경우 AEM Forms On-prem 6.5의 적응형 Forms을 통한 파일 업로드가 실패합니다. 이 문제는 클라우드 커넥터를 통해 Azure Blob Storage에 파일을 저장하는 사용자 지정 제출 작업을 사용하는 다중 파트 양식 제출 중에 발생합니다. 제출 처리기에서 파일을 추출하는 동안 part.getName()과(와) 같은 메서드가 유니코드 문자를 "???" 또는 "?"로 잘못 대체하여 파일 이름 매핑을 방해하고 성공적으로 업로드하지 못하게 합니다.
이 문제를 해결하려면 getSubmittedFileName() 메서드를 사용하여 특수 문자로 파일 이름을 정확하게 검색하고 Azure Blob Storage에 안정적으로 업로드되도록 합니다.
설명 description
환경
- 제품: AEM Forms
- 버전: v6.5
문제/증상
- 특수 문자가 있는 파일 이름은 "???" 또는 "?"로 표시됩니다.
part.getName()을(를) 사용하여 검색한 경우. - 파일 이름에 유니코드 문자가 포함된 경우
request.getParts()메서드가 모든 첨부 파일을 반환하지 않습니다. - 이름에 특수 유니코드 문자가 있는 파일의 경우 업로드가 실패합니다(특히 다중 부분 양식 제출 시).
- 파일 이름 인코딩이 잘못되면 Blob 저장소 작업에 영향을 미쳐 업로드가 제대로 되지 않습니다.
해결 방법 resolution
이 문제를 해결하려면 getSubmittedFileName() 대신 getName()을(를) 사용하도록 파일 업로드 논리를 업데이트하십시오. 이렇게 하면 특수 또는 유니코드 문자가 있는 파일 이름을 올바르게 검색하고 처리할 수 있습니다. 다음 단계를 수행하십시오.
-
part.getName()에 대한 모든 호출을 코드에서part.getSubmittedFileName()(으)로 바꿉니다. 이 메서드는 특수 문자 또는 유니코드 문자를 포함한 원래 파일 이름을 검색합니다. -
다양한 유형의 파일 이름이 있는 샘플 파일을 사용하여 업데이트된 코드를 테스트하여 올바른 동작을 확인하십시오. 예:
code language-none // Before (problematic) String filename = part.getName(); // After (fixed) String filename = part.getSubmittedFileName(); -
업데이트된 코드를 프로덕션에 배포하고 모든 환경 및 플랫폼에서 파일 업로드가 작동하는지 확인합니다.
이렇게 변경하면 문자 집합에 관계없이 파일 이름이 정확하게 처리되므로 특수 문자 또는 유니코드 문자가 있는 파일에도 성공적으로 업로드할 수 있습니다.