我似乎在我正在处理的网站上遇到了照片上传功能的问题。
<cftry>
<cffile
action="upload"
destination="#physicalPath#\PHOTOS"
filefield="photo"
nameconflict="makeunique"
accept="image/jpeg, image/pjpeg"
result="mypicture"
/>
<cfset OutcomeID = "#FORM.OutcomeID#"/>
<!---Inserts file name and outcome id into Uploads table in the database --->
<cfinvoke component="#classpath#.cf_classes.dao.uploads" method="insertPhoto" returnvariable="success">
<cfinvokeargument name="fileName" value="#mypicture.SERVERFILE#"/>
<cfinvokeargument name="OutcomeID" value="#OutcomeID#"/>
</cfinvoke>
<cfset photoError = "Photo uploaded successfully"/>
<cfcatch type="any">
<cfset photoError = "There was an error uploading your photo.<br/> Please make sure it is a JPEG format."/>
</cfcatch>
</cftry>
无论如何,我只是不断回到cfCatch中定义的错误消息。有什么好方法可以解决这样的问题?有什么问题对任何人都有帮助吗?
感谢您的帮助,我对CF仍然相对较新。
答案 0 :(得分:1)
你只需在那里设置一个字符串,就可以掩盖你的cfcatch捕获的异常。如果您不想删除异常处理程序,那么在您仍在处理代码时,快速简便地查看底层错误是添加:
<cfcatch><cfdump var="#cfcatch#"></cfcatch>
您可能需要向abort="true"
添加cfcatch
,以便在此时停止处理更多代码,这可能会掩盖您的异常转储或导致其无法显示。
将cfcatch.message
放入用户看到的字符串中并不是一种好习惯,因为这可能会导致信息泄露,这可能带来安全风险(例如,如果邮件包含服务器上的文件路径或类似信息)
从长远来看,如果您使用的是Coldfusion Builder,那么您也可以使用内置的Coldfusion Debugger来逐步执行代码,并在此时查看变量状态的失败位置。< / p>