2019. 9. 16. 16:18

[Coldfusion] 같은 이름의 form element 처리 방법

Coldfusion에서 같은 이름의 form element를 전송하면 자동으로 list 형태(,콤마 구분)으로 만들어주는데..

이게 아주 병신같다. form value에 comma가 들어가면 100% 오작동 한다. 아주 쓰레기 언어임.

 

일반 form 전송인 경우 아래와 같이 하면 array로 받아 올 수 있다.

<cfdump var="#getPageContext().getRequest().getParameterValues('변수명')#"/>

 

multipart/form-data 인 경우에는 form.getPartsArray()를 사용해야한다.

 

Coldfusino 서버인 경우

<cfset tmpPartsArray = Form.getPartsArray() />
<cfif IsDefined("tmpPartsArray")>
    <cfloop array="#tmpPartsArray#" index="tmpPart">
        <cfif tmpPart.isParam() AND tmpPart.getName() eq '변수명'>
            <cfoutput>#EncodeForHTML(tmpPart.getStringValue())#</cfoutput>
        </cfif>
    </cfloop>
</cfif>

 

Lucee 서버인 경우

var tmpPartsArray = form.getFileItems();
if(!isNull(tmpPartsArray)) {
    for(var file in tmpPartsArray) {
        if(arguments.formFieldName eq file.getFieldName()) {
            return file.getName();
        }
    }
}