파일을 양식에 업로드 할 때 문제가 있습니다. 기본적으로 form.cfm에 이전에 제출 된 파일이 세션에 포함되어 있는지 확인하려고합니다. 그러나 문제가 발생했습니다 : 복잡한 개체 형식을 간단한 값으로 변환 할 수 없습니다.양식에 파일 입력이 있는지 확인하는 방법은 무엇입니까? ColdFusion
form.cfm 코드 :
<cfif structKeyExists(form, "Submit")>
<cfif isDefined("Form.filecontent") AND evaluate("Form.filecontent") NEQ "" >
<cffile action = "upload"
fileField = "file"
destination = "#GetTempDirectory()#"
nameConflict = "overwrite">
<cfset form.storage = cffile>
<cfelse>
<cfset form.storage = "">
</cfif>
<cfset session.checkout.input = {
storage=form.storage
}>
<cflocation url="formcomplete.cfm" addToken="false">
</cfif>
<!DOCTYPE html>
<html>
<head>
<title>Testing</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css" />
<!-- Other Scripts or CSS... -->
</head>
<body>
<form method="post" enctype="multipart/form-data">
<cfoutput>
<input id="filecontent" name="filecontent" class="input-file" type="file" accept="application/vnd.ms-excel">
</cfoutput>
<button value="Submit" type="submit" id="Submit" name="Submit" class="btn btn-default">Submit</button>
</form>
</body>
</html>
코드는 임시 디렉토리에 파일의 업로드를 보여주고 세션에 변수를 저장 : 다음은 내 코드입니다. 비어 있으면 세션 변수의 form.storage가 빈 문자열로 저장됩니다.
formcomplete.cfm 코드 : form.cfm 파일이 포함되어있는 경우
<cfif not structKeyExists(session, "checkout")>
<cflocation url="form.cfm" addToken="false">
</cfif>
<cfif evaluate("session.checkout.input.storage") NEQ ""> <!-- !PROBLEM HERE! -->
<cfset strPath = session.checkout.input.storage />
</cfif>
...More Codes after these.
는 오류가 formcomplete.cfm의 5 라인에서 발생한다. form.cfm에 파일이 포함되어 있지 않으면 프로세스가 문제없이 진행됩니다.
오류 예외 ::
복잡한 오브젝트 유형은 단순 값으로 변환 할 수 없습니다.
표현식에서 변수 또는 중간 식 결과를 간단한 값으로 요청했습니다. 그러나 결과는 간단한 값 으로 변환 할 수 없습니다. 간단한 값은 문자열, 숫자, 부울 값 및 날짜/시간 값입니다. 쿼리, 배열 및 COM 개체는 복잡한 값의 예입니다. 가장 큰 오류의 원인은 에서 간단한 값으로 복잡한 값을 사용하려고 시도했기 때문입니다. 예를 들어 cfif 태그에서 검색어 변수 을 사용하려고했습니다.
어떻게하면 현재 코드를 개선하고 문제를 해결할 수 있습니까? * 업데이트 : 올바른 cfif 문은 무엇입니까?
* RE : 특히 serverDirectory * 비록 전체 경로를 얻을, 당신은 * *은'serverDirectory'과'serverFile' 모두를 사용할 필요가 변수. – Leigh