如何在ColdFusion的getPartsArray输出中区分对应表单文件字段?
解决ColdFusion遍历PartsArray时关联文件字段的问题
你可以直接调用tmpPart.getName()方法获取对应表单文件输入的字段名称,这个方法是Part对象的标准接口方法,ColdFusion完全支持。
修改后的代码示例:
<cfset tmpPartsArray = caller.form.getPartsArray() /> <cfif IsDefined("tmpPartsArray")> <cfloop array="#tmpPartsArray#" index="tmpPart"> <cfif tmpPart.isFile()> <cfset thisFieldName = tmpPart.getName() /> <!--- 获取表单文件输入的name属性 ---> <cfset thisFileName = tmpPart.getFileName() /> <cfset thisExt = listLast(thisFileName, ".")> <!--- 示例输出,可根据业务逻辑调整处理逻辑 ---> <cfoutput>对应字段: #thisFieldName# | 文件名: #thisFileName# | 扩展名: #thisExt#<br></cfoutput> </cfif> </cfloop> </cfif>
补充说明
getName()是javax.servlet.http.Part接口的标准方法,ColdFusion的Part对象实现了该接口,返回值就是表单中对应文件输入控件的name属性值(比如表单里写<input type="file" name="userAvatar">,这个方法就返回userAvatar)。- 之前dump没看到这个方法是因为ColdFusion默认dump不会展示所有接口方法,你可以用
<cfdump var="#getMetadata(tmpPart)#">查看完整的方法列表,或者直接调用测试即可验证有效性。
内容的提问来源于stack exchange,提问作者Nicholas
相关产品推荐
相关产品推荐

