我正在为表单提供动态数量的文件上传字段。所以在表单方面,我循环遍历这个动态数字(例如3,作为索引'm'),并命名每个文件字段输入'ResumeFile #m#'。在操作页面上,如果没有填写其中一个文件字段,我会收到错误。当填写所有3个文件字段时,它可以正常工作。
错误是(此处,未填写文件字段2时):
The form field Form.ResumeFile2 did not contain a file.
这是我创建表单的代码:
<cfset numUploads = 3>
<cfform name="uploadMultipleResumes" action="uploadMultipleResumes.cfm" enctype="multipart/form-data" >
<cfinput name="EmployeeID" type="hidden" value="#form.EmployeeID#">
Resume File(s): *<BR>
<cfloop from="1" to="#numUploads#" index="j">
<cfinput name="ResumeFile#j#" type="file" size="50">
</cfloop>
<BR />
<cfinput name="Submit" type="submit" value="Upload Multiple Resumes">
</cfform>
这是我在操作页面中的代码(缩写)。我已经尝试了很多关于如何检查每个文件字段是否未填写的组合,所有这些都允许空白输入通过并得到我上面提到的错误。
<!--- Loop over multiple file fields --->
<cfloop from="1" to="#numUploads#" index="m">
<cfif 'Form.ResumeFile#m#' is not "">
<cffile action="upload" filefield="#Evaluate('Form.ResumeFile#m#')#" nameconflict="makeunique" destination="#destinationPath#">
</cfif>
</cfloop>
即使我已经尝试过,我也会尝试所有的建议!我已经这几天了,我知道有答案!
非常感谢!
这是错误的图像
答案 0 :(得分:6)
将操作页面上的代码更改为以下内容:
<!--- Loop over multiple file fields --->
<cfloop from="1" to="#numUploads#" index="m">
<cfif len(Form["ResumeFile#m#"])>
<cffile action="upload" filefield="Form.ResumeFile#m#" nameconflict="makeunique" destination="#destinationPath#">
</cfif>
</cfloop>
修正了一些性能瓶颈:
evaluate()
。len()
代替IS NOT ""
来检查非空字符串。