CONTENT_DISPOSITION_FILENAME¶
목적¶
HTTP Response 에서 Content-Disposition 헤더를 이용해 파일 전송 시, 특수문자로 인한 오류를 방지하기 위해 파일명을 안전하게 변환
주요 단계¶
1. File Name Escape 처리 예제¶
- HTTP Response 에서 특수문자 처리 방식이 아닌 파일명을 변환하는 방식을 확인
- 특수 문자 및 공백이 포함된 파일을 업로드 후, CONTENT_DISPOSITION_FILENAME을 수행하여 Escape 처리 전후의 파일명을 비교
1.1 File Uploader UI 생성 및 “uploadComplete” Event 생성¶

<사진 1> File Uploader, Escape 처리, 미처리 파일명 표시 UI 구성 화면
1.2 Method : EV_UPLOAD Source Code¶
METHOD EV_UPLOAD.
DATA : LV_FNAME TYPE STRING.
*--------------------------------------------------------------------*
"-* Upload File Information.
READ TABLE IT_FILES INTO DATA(LS_FILES) INDEX 1.
CHECK SY-SUBRC EQ 0.
CALL METHOD /U4A/CL_UTILITIES=>CONTENT_DISPOSITION_FILENAME
EXPORTING
USER_AGENT_TYPE = 2
USER_AGENT_VERSION = 0
FILE = LS_FILES-FNAME
RECEIVING
FILENAME = LV_FNAME.
" Content Disposition, File Name*=utf-8''file.txt.
"-* Escape unprocessed filename.
CONCATENATE 'filename="' LS_FILES-FNAME '"' INTO GS_MAIN-FNAME1.
"-* Escape processed filename.
GS_MAIN-FNAME2 = LV_FNAME.
ENDMETHOD.
2. Application 실행 및 테스트¶
2.1 Application 을 실행 후 파일 업로드 버튼을 선택¶

<사진 2> Application 초기 실행 화면 및 파일 업로드 버튼 선택
2.2 특수문자 및 공백이 포함된 파일을 업로드¶

<사진 3> 특수 문자 및 공백이 포함된 파일 업로드 화면
2.3 Escape 처리 완료된 파일명과 미처리된 파일명을 비교¶

<사진 4> 파일 업로드 완료 후 Escape 처리된 파일명 & 원본 파일명 비교