누군가 이력서를 업로드 한 경우 잘 작동하는 온라인 응용 프로그램을 만들었습니다. 이력서가 선택 사항 인 위치를 사용할 수 있지만 대기열에 파일이 없으면 시스템에서 오류가 발생합니다.ColdFusion cffile 업로드 - 선택 사항
IsDefined 및 StructKeyExists를 시도했지만 제대로 작동하지 않습니다. 어떤 제안이라도 대단히 감사합니다.
누군가 이력서를 업로드 한 경우 잘 작동하는 온라인 응용 프로그램을 만들었습니다. 이력서가 선택 사항 인 위치를 사용할 수 있지만 대기열에 파일이 없으면 시스템에서 오류가 발생합니다.ColdFusion cffile 업로드 - 선택 사항
IsDefined 및 StructKeyExists를 시도했지만 제대로 작동하지 않습니다. 어떤 제안이라도 대단히 감사합니다.
대괄호는 다음과 같이 말합니다. 사용해보기 :
<cfset destination = expandPath("./uploads")>
<cfif IsDefined('form.submitapp')>
<cfif IsDefined("form.uploadfile") AND len(trim(form.uploadFile))>
<cffile action="upload" filefield="uploadfile" destination="#destination#" nameConflict="makeUnique">
<cfif isDefined("CFFILE.serverFile")>
<cfset form.resume = CFFILE.serverFile>
</cfif>
</cfif>
</cfif>
실제 양식과 오류 메시지 (힌트, 힌트 ;-)를 보지 않고 말하기는 어렵지만'cfparam'이 없어도 오류가 발생할 수 있습니다. 비어있는 경우에도 파일 필드는 여전히 정의됩니다. 'cffile action = "upload"'를 호출하면 오류가 발생합니다. 위의'len (trim (..)) '체크는 그 문제를 피해야한다. @BigMike - isDefined ("CFFILE.serverFile")는 필요 없습니다. 이는 업로드가 성공한 후에 항상 정의되는 시스템 변수입니다. – Leigh
좋은 지적합니다. –
양식 코드를 공유하십시오. 항상 양식 코드를 공유하십시오. form.submitapp 및 form.uploadfile에 대한 cfparam이 있습니까? 그렇다면 문제 일 가능성이 있습니다. –
또한 "빈"은 "정의되지 않음"과 다른 개념입니다. 대부분의 (모든 것은 아님) 양식 필드는 값이 들어 있는지 여부에 관계없이 제출됩니다. 즉, 액션 페이지에 정의됩니다. 그들은 단지 빈 문자열, 즉 ""값을 가질 것입니다. 'structKeyExists'와 같은 함수는 필드 * value *를 검사하지 않습니다. 필드가 정의되어 있는지 확인합니다. 따라서 작업에 대해 올바른 비교를 사용하고 있는지 확인하십시오. – Leigh
cfquery 대신 cfinsert를 사용한다는 사실은 선택적 양식 필드와 같은 것들을 처리 할 수있는 유연성을 감소시킵니다. –