ColdFusion как получить сообщение от cfcatch - PullRequest
0 голосов
/ 12 марта 2020

Я делаю загрузку cffile и хочу перехватывать любые ошибки в типе MIME. Я написал этот код:

 <form 
 enctype= "multipart/form-data" 
 method = "post" 
 name   = "templupload"  
 action = "frag2.cfm">

<cftry>
   <cffile action = "upload"
    destination   = "#session.exploc#"
    fileField     = "form.theupload"
    mode          = '666'
    accept        = 'html'
    strict        = 'true'
    result        = 'ss'
    nameConflict  = "Overwrite">

    <!--- bad mime type files --->
    <cfcatch type = 'any'>   
       <cfif FindNoCase("The MIME type or the Extension of the uploaded file", cfcatch.message)>
       <cfoutput>
          <script>
             document.getElementById('tmpl').innerHTML = "error";
          </script>
       </cfoutput>   
       </cfif>
    </cfcatch>

 <cfthrow type="any" message="got an error" />         
</cftry>

Когда я пытаюсь загрузить неправильный тип MIME, он не загружается, что хорошо. Форма отправки не очень хорошая, но об этом я расскажу позже. Моя проблема сейчас в том, что я не смог получить сообщение об ошибке, чтобы появиться где-либо. Я пробовал следующее:

<cfcatch.message = 'error'; 
<script>alert('error');</script>
<script> document.getElementById('tmpl').innerHTML = "error";</script>
   <!--- this 2nd script does not work regardless of whether the tmpl
         id is on the original page or the target page --->  
<cfoutput> error </cfoutput>
<p> error </p>
<cfthrow type = 'any' message = 'error' />
<cfdump var = "#catch#"  or var = '#catch.message#"

Я пробовал все это внутри и снаружи тега cfcatch, но всегда внутри тега cftry. Все эти подходы были в исследовании, которое я проводил, но ни один из них не работает для меня.

Может кто-нибудь сказать мне, что я делаю здесь неправильно?

1 Ответ

2 голосов
/ 13 марта 2020

Вы ищете что-то подобное?

 <cftry>

 <cfcatch>
      <cfset request.error = cfcatch.message>
 <cfcatch>

</cftry>

Тогда намного, намного позже

<cfif request.keyExists('error')>
    <cfoutput>#request.error#</cfoutput>
</cfif>
...