説明

HTTP リクエストでページに送信されたすべてのファイルを、サーバー上のディレクトリにコピーします。

シンタックス

<cffile
action = "uploadAll"
destination = "full pathname"
accept = "list of MIME types"
attributes = "file attribute or list"
mode = "permission"
nameConflict = "behavior"
result = "result name"
ContinueOnError = "true|false"
Errors = Variable in which the file upload errors will be stored.">

注意:このタグの属性は attributeCollection 属性で指定でき、その値は構造体になります。attributeCollection 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。

関連項目

cffile action = "upload"cfdirectory

履歴

ColdFusion 11:ContinueOnError 属性と Errors 属性が追加されました。

メインの cffile タグのページの「履歴」セクションを参照してください。

属性

属性

必須/オプション

デフォルト

説明

action

必須

 

このタグが実行するファイル操作のタイプです。

destination

必須

 

ファイルのアップロード先となるディレクトリのパス名です。絶対パス(ドライブ文字とコロン、あるいはスラッシュまたは円記号から始まるパス)を指定しない場合は、GetTempDirectory 関数から返される ColdFusion テンポラリディレクトリを基準とする相対パスを指定します。

accept

オプション

 

受け入れる MIME タイプを制限します。カンマ区切りリストです。例えば、次のコードでは、JPEG ファイルと Microsoft Word ファイルのアップロードが許可されます。accept = {{"image/jpg, application/msword"}} ブラウザーは、ファイル拡張子に基づいてファイルタイプを判別します。

attributes

オプション

 

Windows に適用されます。ファイルに設定する属性をカンマ区切りリストで指定します。
この属性を省略した場合、ファイルの属性が保持されます。値はそれぞれ明示的に指定する必要があります。例えば、attributes = "readOnly" を指定した場合、他の属性がすべて上書きされます。

  • readOnly
  • hidden
  • normal (normal 以外に他の属性が指定されている場合、normal よりも他の属性が優先されます)

mode

オプション

 

UNIX および Linux だけに適用されます。許可を表します。chmod コマンドの 8 進数値を使用し、所有者、グループ、および他の利用者それぞれに割り当てられます。例 :

  • 644: 所有者に読み取り / 書き込み許可、グループおよび他の利用者に読み取り許可を割り当てます。
  • 777: 利用者全員に読み取り / 書き込み / 実行許可を割り当てます。

nameConflict

オプション

Error

ファイル名がディレクトリ内のファイルと同じ場合に実行するアクションです。

  • Error: ファイルは保存されません。ColdFusion によりページの処理が停止され、エラーが返されます。
  • Skip: ファイルは保存されません。このオプションでは、ファイルプロパティに基づいて、動作をカスタマイズできます。
  • Overwrite: ファイルを上書きします。
  • MakeUnique: アップロード用に固有のファイル名を作成します。この名前は、ファイルの結果の構造体の serverFile フィールドに保管されます。
ContinueOnError  オプション False

デフォルトでは、いずれかのファイルのアップロードに失敗した場合、残りのファイルはアップロードされません。この値を true に設定した場合、アップロードエラーの発生後もファイルのアップロードが継続されます。ファイルアップロードエラーは次の理由により発生します。

1. ファイルが空である
2.ファイルタイプが無効である
3.MIME または拡張子が無効である
4.ファイルが既に存在する

アップロードに失敗した場合、エラーの詳細が errors 属性に格納されます。

エラー オプション  cffile.uploadAllErrors

 ファイルアップロードエラーが格納される変数の名前です。continueOnError が true の場合に、指定した名前の変数にエラーが設定されます。ファイルアップロードの完了後、このタグによって、アップロードの失敗ごとのアップロード失敗情報を含む構造体の配列が作成されます。

アップロード失敗情報のエラー構造体には次のフィールドが含まれます。

  • REASON - 失敗の理由です。
  • DETAIL - ファイルアップロード失敗の詳細です。
  • MESSAGE - 失敗を示す詳細メッセージです。
  • CLIENTFILE - クライアントのシステムからアップロードされたファイルの名前です。
  • CLIENTFILEEXT - クライアントシステム上のアップロードされたファイルの拡張子です(ピリオドは含みません)。
  • CLIENTFILENAME - クライアントシステム上のアップロードされたファイルの名前です(拡張子は含みません)。
  • INVALID_FILE_TYPE - ファイルの MIME タイプまたは拡張子が accept 属性に指定されていない場合。理由が INVALID_FILE_TYPE の場合、この構造体ではさらに次の 2 つのキーが利用可能です。
    • ACCEPT:このタグに指定された MIME タイプまたはファイル拡張子のリストです。
    • MIMETYPE:アップロードされたファイルの MIME タイプです。
  • EMPTY_FILE - アップロードされたファイルが空のファイルである場合。
  • FILE_EXISTS - 指定された名前のファイルが保存先に既に存在しており、overwritepolicy が error の場合。
  • DEST - ファイルのコピー先です。
  • FORM_FILE_NOT_FOUND - アップロードされたファイルがサーバー上に見つからない場合。

result

オプション

 

cffile が結果またはステータスのパラメータを返す変数の名前を指定することができます。この属性の値を指定しない場合、cffile は cffile という接頭辞を使用します。詳細については、「使用方法」を参照してください。

使用方法

一度に 1 つのファイルのみをアップロードする cffile action="upload" とは異なり、cf fileaction="uploadall" を使用すると複数のファイルがアップロードされるので、複数の cffile action="upload" ステートメントを記述する必要がなくなります。cffileupload コントロールの action 属性で指定されたページで、このタグを使用します。このタグのアップロードは、ユーザーが保存ボタンをクリックしたときに cffileupload コントロールによって送信されるファイルを保存します。ファイルのアップロードが終了すると、このタグによって、結果パラメータで指定した構造体の配列が作成されます。配列の各構造体には、1 つのファイルのアップロード結果情報が格納されます。結果の構造体の内容の詳細については、「cffile action = "upload"」を参照してください。

注意:サーバーの「リクエストのスロットルしきい値」または Administrator の「サーバーの設定」の「設定」ページを指定することによって、アップロードの最大ファイルサイズを制御できます。

次の例では、cffileupload タグによってアップロードされたファイルを一時ディレクトリにコピーします。

<cfif isdefined("form.submit")>
<cffile action="uploadall" destination="#expandpath('./upload')#">
</cfif>
<cfform action="#cgi.script_name#" enctype="multipart/form-data">
<cfinput type="file" name="attachment1"><br>
<cfinput type="file" name="attachment2"><br>
<cfinput type="file" name="attachment3"><br>
<cfinput type="submit" name=" submit" value="submit">
</cfform>

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー