File upload ColdFusion-如何检查上载文件字段是否为空-使用动态字段名的esp?

File upload ColdFusion-如何检查上载文件字段是否为空-使用动态字段名的esp?,file-upload,coldfusion,dynamic-variables,File Upload,Coldfusion,Dynamic Variables,我给表单提供了动态数量的文件上传字段。因此在表单方面,我循环使用这个动态数字(比如3,作为索引'm'),并将每个文件字段输入命名为'ResumeFile#m#'。在“操作”页面上,如果其中一个文件字段未填写,则会出现错误。当所有3个文件字段都被填充后,它就可以正常工作了 错误为(此处,未填写文件字段2时): 以下是我创建表单的代码: <cfset numUploads = 3> <cfform name="uploadMultipleResumes" actio

我给表单提供了动态数量的文件上传字段。因此在表单方面,我循环使用这个动态数字(比如3,作为索引'm'),并将每个文件字段输入命名为'ResumeFile#m#'。在“操作”页面上,如果其中一个文件字段未填写,则会出现错误。当所有3个文件字段都被填充后,它就可以正常工作了

错误为(此处,未填写文件字段2时):

以下是我创建表单的代码:

    <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>

即使我已经尝试过,我也会尝试所有的建议!我已经做了好几天了,我知道有答案

非常感谢

这是错误的图像


将操作页面上的代码更改为以下内容:

<!--- 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”“
    检查非空字符串

  • 塞伯森,谢谢你的帮助!我已经把代码改成了这个,但在上传线上仍然会出现同样的错误。当这不起作用时,我在if语句中添加了“gt 0”,但没有区别。那一部分很有趣。还感谢您提供有关Evaluate()的提示。实际上,它确实有效。我不得不把所有的东西从我的行动页面中拿出来,只需要使用你的代码,瞧!我正在重新添加其余的代码,但还没有发现问题。很抱歉,它给了我和以前一样的错误,我不认为还有什么别的错误。再次感谢!!=)我发现了错误——我试图进行一些cfscript验证,但有一行代码把事情搞砸了……不知道为什么会让它通过if语句。再次感谢!
    <!--- 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>