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 Debuggerを使用してコードをステップ実行し、その時点での変数の状態でどこで失敗しているかを確認することもできます。

于 2012-05-17T01:54:04.837 に答える