5

フォームに動的な数のファイルアップロードフィールドを指定しています。したがって、フォーム側では、この動的な数値(たとえば、インデックス'm'として3)をループし、各ファイルフィールド入力に' ResumeFile#m#'という名前を付けています。アクションページで、ファイルフィールドの1つが入力されていないとエラーが発生します。3つのファイルフィールドがすべて入力されている場合は、正常に機能します。

エラーは次のとおりです(ここでは、ファイルフィールド2が入力されていない場合)。

    The form field Form.ResumeFile2 did not contain a file. 

フォームを作成するコードは次のとおりです。

    <cfset numUploads = 3>
    <cfform name="uploadMultipleResumes" action="uploadMultipleResumes.cfm" enctype="multipart/form-data" >
        <cfinput name="EmployeeID" type="hidden" value="#form.EmployeeID#">
        Resume File(s): *<BR>
        <cfloop from="1" to="#numUploads#" index="j">
            <cfinput name="ResumeFile#j#" type="file" size="50">
        </cfloop>
        <BR />
        <cfinput name="Submit" type="submit" value="Upload Multiple Resumes">
    </cfform>

これがアクションページからの私のコード(省略形)です。各ファイルフィールドが入力されていないかどうかを確認する方法の組み合わせをたくさん試しましたが、そのすべてで空白の入力が通過し、上記のエラーが発生します。

    <!--- Loop over multiple file fields --->
    <cfloop from="1" to="#numUploads#" index="m">
        <cfif 'Form.ResumeFile#m#' is not "">
            <cffile action="upload" filefield="#Evaluate('Form.ResumeFile#m#')#" nameconflict="makeunique" destination="#destinationPath#">
        </cfif>
    </cfloop>

すでに試したとしても、すべての提案を試してみます!私は何日もこれに取り組んできました、そして私は答えがあることを知っています!

本当にありがとう!

これがエラーの画像です

ブロッククォート

4

1 に答える 1

7

アクションページのコードを次のように変更します。

<!--- Loop over multiple file fields --->
<cfloop from="1" to="#numUploads#" index="m">
    <cfif len(Form["ResumeFile#m#"])>
        <cffile action="upload" filefield="Form.ResumeFile#m#" nameconflict="makeunique" destination="#destinationPath#">
    </cfif>
</cfloop>

いくつかのパフォーマンスのボトルネックも修正されました:

  1. 可能であれば、常に。の使用を避ける必要があることに注意してください evaluate()
  2. len()の代わりに使用IS NOT ""して、空でない文字列をチェックします。
于 2012-06-22T13:59:50.533 に答える