我的一个coldfusion项目使用'FW / 1'框架和'ValidateThis'作为验证框架。
通过使用此功能,所有输入字段都可以正确验证,没有任何问题。但是当涉及到文件字段时,它会在客户端正确验证,但表单不会被提交。不知道为什么会这样。详情如下:
文件字段操作:必须仅以“jpeg / jpg”格式上传图像。
Test / Default.cfm(查看页面)
<form action="#buildUrl('test.default')#" method="post"
enctype="multipart/form-data" name="frm_test" id="frm_test">
<div class="field">
<label for="picture">Profile Picture:</label>
<input type="file" id="picture" name="picture" value="">
</div>
<input type="submit" class="ui small button green" name="Submit" value="#rc.Submit#">
</form>
validatethis / rules / test.json(规则文件)
{"validateThis" : {
"contexts" : [
{"name":"test","formName":"frm_test"}
],
"objectProperties" : [
{"name":"picture",
"rules":[
{"type":"custom","failureMessage":"Please upload jpg/jpeg images only",
"params":[
{"name":"remoteURL","value":"/ValidateThis/rules/checkformat.cfm"}
]
}
]
}
]
}
co}
validatethis /规则/ checkformat.cfm
<cfif len(url.picture)>
<cfset fileEXt = listlast(url.picture,'.')>
<cfif fileEXt EQ 'jpg' OR fileEXt EQ 'jpeg'>
true
<cfelse>
false
</cfif>
所以上面提到的细节是为客户端验证配置的,一切都很完美。但是在文件上传期间,表单会验证但不会提交。
我错过了什么吗?
答案 0 :(得分:0)
看起来您正在使用method="post"
,但检查GET url
参数:
<cfif len(url.picture)>
尝试:
<cfif len(form.picture)>
<cfset fileEXt = listlast(form.picture,'.')>
<cfif fileEXt EQ 'jpg' OR fileEXt EQ 'jpeg'>
true
<cfelse>
false
</cfif>
</cfif>
顺便说一句,这是检查文件上传Getting The MetaData For A File Upload In ColdFusion
的更有力的方法