Coldfusion CFfile--未将值设置为查询的数据
我有这个添加用户表单,它还可以通过查询数据并设置value=“#query.xvalue#”作为编辑用户表单。如果用户存在(例如,您正在编辑用户,它将从数据库加载用户数据。在Coldfusion CFfile--未将值设置为查询的数据,coldfusion,file,uploading,cfc,cffile,Coldfusion,File,Uploading,Cfc,Cffile,我有这个添加用户表单,它还可以通过查询数据并设置value=“#query.xvalue#”作为编辑用户表单。如果用户存在(例如,您正在编辑用户,它将从数据库加载用户数据。在 这实际上与你想要的正好相反。我相信你想说的是: <!--- if the length is greater than 0, assume a file was uploaded ---> <cfif len(Trim(form.cprAdultImage)) GT 0> file is
这实际上与你想要的正好相反。我相信你想说的是:
<!--- if the length is greater than 0, assume a file was uploaded --->
<cfif len(Trim(form.cprAdultImage)) GT 0>
file is not empty. do the upload ...
<cfinvokeargument name="cprAdultImage" value="#pathOfFile##cffile.serverFile#">
<cfelse>
<cfinvokeargument name="cprAdultImage" value="">
</cfif>
文件不为空。请执行上载。。。
编辑
顺便说一句,…因为所有参数都是可选的,所以代码感觉有点笨拙
,
您无法真正预设文件控件“值”(浏览器安全限制)。由于用户可以在这两种情况下上载文件,因此只需提供输入并仅在存在以前的图像时显示“查看”链接即可
<cfif len(Trim(certificationsList.cprAdultImage))>
File Exists:
<cfoutput><a href="#certificationsList.cprAdultImage#">View File</a></cfoutput>
</cfif>
<cfinput type="file" required="no" name="cprAdultImage">
文件存在:
cprAdultImage='#Trim(ARGUMENTS.cprAdultImage)#'
更新逻辑看起来也有点不正确。如果未提供文件,则最终将用空字符串覆盖现有图像。为避免这种情况,请仅在提供新文件(即非空文件)时更新该字段
表格处理:
<cfif len(Trim(form.cprAdultImage)) GT 0>
<cffile action="upload" filefield="cprAdultImage" destination="#destination#" nameConflict="makeUnique">
<cfinvokeargument name="cprAdultImage" value="#pathOfFile##cffile.serverFile#">
</cfif>
CFC参数:
<!--- if values are always used in queries, should be required=true --->
<cfargument name="cprAdultExp" required="yes">
<cfargument name="cprAdultCompany" type="string" required="yes">
<cfargument name="cprAdultOnFile" type="boolean" required="yes">
<cfargument name="cprAdultImage" type="string" default="">
质疑
UPDATE mod_StudentCertifications
SET
cprAdultExp='#DateFormat(ARGUMENTS.cprAdultExp, "mm/dd/yyyy")#',
cprAdultCompany='#Trim(ARGUMENTS.cprAdultCompany)#',
<!--- only overwrite the value if a new file was supplied --->
<cfif len(trim(ARGUMENTS.cprAdultImage))>
cprAdultImage='#Trim(ARGUMENTS.cprAdultImage)#',
</cfif>
cprAdultOnFile='#Trim(ARGUMENTS.cprAdultOnFile)#'
WHERE ....
更新mod_学生认证
设置
cprAdultExp='#日期格式(ARGUMENTS.cprAdultExp,“mm/dd/yyyy”)#',
cprAdultCompany='#Trim(ARGUMENTS.cprAdultCompany)#',
cprAdultImage='#Trim(ARGUMENTS.cprAdultImage)#',
cprAdultOnFile='#Trim(ARGUMENTS.cprAdultOnFile)#'
哪里
不要忘记清理。删除任何旧文件…我很害怕。我应该在其他文件中添加什么?代码将完全相同,只需修复CFIF。我已更新了响应以使其更清晰。尽管传递空字符串似乎有点奇怪..因为您的cfargument是可选的。
<cfif len(Trim(certificationsList.cprAdultImage))>
File Exists:
<cfoutput><a href="#certificationsList.cprAdultImage#">View File</a></cfoutput>
</cfif>
<cfinput type="file" required="no" name="cprAdultImage">
<cfif len(Trim(form.cprAdultImage)) GT 0>
<cffile action="upload" filefield="cprAdultImage" destination="#destination#" nameConflict="makeUnique">
<cfinvokeargument name="cprAdultImage" value="#pathOfFile##cffile.serverFile#">
</cfif>
<!--- if values are always used in queries, should be required=true --->
<cfargument name="cprAdultExp" required="yes">
<cfargument name="cprAdultCompany" type="string" required="yes">
<cfargument name="cprAdultOnFile" type="boolean" required="yes">
<cfargument name="cprAdultImage" type="string" default="">
UPDATE mod_StudentCertifications
SET
cprAdultExp='#DateFormat(ARGUMENTS.cprAdultExp, "mm/dd/yyyy")#',
cprAdultCompany='#Trim(ARGUMENTS.cprAdultCompany)#',
<!--- only overwrite the value if a new file was supplied --->
<cfif len(trim(ARGUMENTS.cprAdultImage))>
cprAdultImage='#Trim(ARGUMENTS.cprAdultImage)#',
</cfif>
cprAdultOnFile='#Trim(ARGUMENTS.cprAdultOnFile)#'
WHERE ....