説明

サーバー上のディレクトリにファイルをコピーします。

シンタックス

<cffile
action = "upload"
destination = "full pathname"
fileField = "form field"
accept = "MIME type|file type"
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 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。

関連項目

cfdirectorycffile action = "uploadAll"cffileupload

履歴

ColdFusion 10 で strict 属性が追加されました。メインの cffile タグのページの「履歴」セクションを参照してください。

属性

属性

必須/オプション

デフォルト

説明

action

必須

 

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

destination

必須

 

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

fileField

オプション

 

ファイルを選択するときに使用したフォームフィールドの名前です。フィールド名を指定するときは、シャープ記号(#)を使用しないでください。この属性を省略した場合、デフォルト値は送信される最初の file フィールドの名前になります。

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: アップロード用に固有のファイル名を作成します。この名前は、file オブジェクト変数 serverFile に保管されます。

result

オプション

 

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

strict

オプション

true

strict が true の場合、accept 属性に指定された MIME タイプまたは MIME タイプと拡張子の組み合わせのみが許可されるようになります。strict はデフォルトで true であるので、accept 属性に MIME タイプを指定する必要があります。strict が false の場合は、MIME タイプ、拡張子またはそれらの組み合わせのいずれかを accept 属性の値として指定できます。詳しくは、このブログエントリを参照してください。
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 - アップロードされたファイルがサーバー上に見つからない場合。

使用方法

ファイルのアップロードが終了すると、ファイルアップロードのパラメータを使用してステータス情報を取得できます。パラメータを参照するには、cffile 接頭辞を使用するか、result 属性で代替名を指定した場合はその指定した名前を使用します。例えば、result 属性で名前を指定しなかった場合は、#cffile.fileExisted# として fileExisted パラメータにアクセスします。result 属性を myResult に設定した場合は、#myResult.fileExisted# として fileExisted パラメーターにアクセスします。ステータスパラメーターは、他の ColdFusion パラメーターを使用できる場所であればどこでも使用できます。cfform タグまたは HTML フォームタグを使用して、アップロードするファイルと同時にフォームも送信する場合は、このタグの例で示すように enctype="multipart/form-data" を指定します。ColdFusion のデフォルトでは、application/x-www-form-urlencoded エンコーディングを使用してフォームが送信されるので、cffile タグでエラーが発生します。

注意:result 属性では、複数のページから同時に呼び出される関数または CFC について、一方の呼び出しの結果が他方の呼び出しの結果を上書きしないようにすることができます。

注意:cffile 接頭辞を優先するために、file 接頭辞は非推奨になりました。新規アプリケーションでは file 接頭辞を使用しないでください。

注意:ページのフォーム上で選択されたファイルまたは multipart/form-data HTTP メッセージ経由でページに送信されたファイルをアップロードする場合には、CGI.content_length 変数の値を調べれば、ファイルのおおよそのサイズがわかります。この変数には、ファイルの長さだけでなく、その他のリクエストコンテンツの長さも格納されています。

アップロードを終えた後は、次に示すファイルアップロードステータスのパラメータを使用できます。

パラメータ

説明

attemptedServerFile

ファイルを保存するために使用された初期名です。

clientDirectory

クライアントのシステムからアップロードされたファイルのディレクトリ位置です。

clientFile

クライアントのシステムからアップロードされたファイルの名前です。

clientFileExt

クライアントシステム上のアップロードされたファイルの拡張子です(ピリオドは含みません)。

clientFileName

クライアントシステム上のアップロードされたファイルの名前です(拡張子は含みません)。

contentSubType

保存ファイルの MIME コンテンツサブタイプです。

contentType

保存ファイルの MIME コンテンツタイプです。

dateLastAccessed

アップロードされたファイルが最後にアクセスされた日付と時刻です。

fileExisted

同じパスを持つファイルが存在しているかどうかを yes または no で示します。

fileSize

ファイルのサイズです(バイト単位)。

fileWasAppended

アップロードされたファイルが他のファイルに追加されたかどうかを yes または no で示します。

fileWasOverwritten

ファイルが上書きされたかどうかを yes または no で示します。

fileWasRenamed

名前の重複を回避するために、アップロードされたファイルの名前が変更されたかどうかを yes または no で示します。

fileWasSaved

ファイルが保存されたかどうかを yes または no で示します。

oldFileSize

ファイルのアップロード処理によって上書きされたファイルのサイズです。

serverDirectory

サーバー上に実際に保存されたファイルのディレクトリです。

serverFile

サーバー上に保存されたファイルの名前です。

serverFileExt

サーバー上にアップロードされたファイルの拡張子です(ピリオドは含みません)。

serverFileName

サーバー上にアップロードされたファイルの名前です(拡張子は含みません)。

timeCreated

アップロードされたファイルが作成された時刻です。

timeLastModified

アップロードされたファイルが最後に修正された日付と時刻です。

注意:ファイルステータスのパラメータは読み取り専用です。これらの変数には、最新の cffile 操作の結果が設定されます。2 つの cffile タグを実行すると、result 属性で異なる結果変数を指定していない限り、最初の結果は 2 番目の結果によって上書きされます。

次の例では、Windows 上でのファイルアップロード時に名前が競合している場合に、固有のファイル名を作成します。

<!--- Windows Example --->
<!--- Check to see if the Form variable exists. --->
<cfif isDefined("Form.FileContents") >
<!--- If TRUE, upload the file. --->
<cffile action = "upload"
fileField = "FileContents"
destination = "c:\files\upload\"
accept = "text/html"
nameConflict = "MakeUnique">
<cfelse>
<!--- If FALSE, show the Form. --->
<form method="post" action=<cfoutput>#cgi.script_name#</cfoutput>
name="uploadForm" enctype="multipart/form-data">
<input name="FileContents" type="file">
<br>
<input name="submit" type="submit" value="Upload File">
</form>
</cfif>

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

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