调试Photo Uploader / CfCatch

时间:2012-05-16 19:19:31

标签: coldfusion upload photos

我似乎在我正在处理的网站上遇到了照片上传功能的问题。

<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仍然相对较新。

1 个答案:

答案 0 :(得分:1)

你只需在那里设置一个字符串,就可以掩盖你的cfcatch捕获的异常。如果您不想删除异常处理程序,那么在您仍在处理代码时,快速简便地查看底层错误是添加:

<cfcatch><cfdump var="#cfcatch#"></cfcatch>

您可能需要向abort="true"添加cfcatch,以便在此时停止处理更多代码,这可能会掩盖您的异常转储或导致其无法显示。

cfcatch.message放入用户看到的字符串中并不是一种好习惯,因为这可能会导致信息泄露,这可能带来安全风险(例如,如果邮件包含服务器上的文件路径或类似信息)

从长远来看,如果您使用的是Coldfusion Builder,那么您也可以使用内置的Coldfusion Debugger来逐步执行代码,并在此时查看变量状态的失败位置。< / p>