0

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

<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 还是比较陌生。

4

1 回答 1

1

您只需在其中设置一个字符串即可掩盖您的 cfcatch 捕获的异常。如果您不想删除异常处理程序,那么在您仍在处理代码时查看潜在错误的一种快速简便的方法是添加:

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

您可能需要添加一个abort="true"cfcatch停止处理进一步的代码,这可能会掩盖您的异常转储或导致它不出现。

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

从长远来看,如果您使用的是 Coldfusion Builder,那么您还可以使用内置的Coldfusion 调试器来单步执行您的代码,并查看此时在您的变量状态下失败的地方。

于 2012-05-17T01:54:04.837 回答