CFCONTENT  
説明

次のどちらか、または両方を行います。

  • 現在のページの MIME コンテンツエンコードヘッダを設定します。エンコード情報に文字エンコードが含まれている場合は、生成された出力の文字エンコードを設定します。
  • ファイルのコンテンツまたはバイナリデータを含む変数のコンテンツを、ページ出力として送信します。

このタグの使用を制限するには、ColdFusion MX Administrator のサンドボックスセキュリティ機能を使用します。詳細については、ColdFusion MX Administrator のオンラインヘルプを参照してください。

 
カテゴリ

データ出力タグ

 
シンタックス
<cfcontent
   type = "file_type"
   deleteFile = "yes"、"no"
   file = "filename"
   variable = "variablename"
   reset = "yes"、"no">
 
関連項目

cfcol、cfheader、cfhttp、cfoutput、cftable

 
ヒストリ

ColdFusion MX 7: variable 属性が追加されました。

 
使用方法

HTML ページなど、生成された出力の文字エンコード (文字セット) を設定するには、次のようなコードを使用します。

<cfcontent type="text/html; charset=ISO-8859-1">

ColdFusion では、HTTP リクエストの処理時に、HTTP レスポンスで返されるデータに対して使用する文字エンコードが決定されます。デフォルトでは、ページ内の HTML の meta タグの値に関係なく、Unicode UTF-8 形式を使用して文字データが返されます。cfcontent タグを使用すると、レスポンスのデフォルトの文字エンコードよりも優先することができます。たとえば、ColdFusion MX で Japanese EUC 文字エンコードを使用してページを返すには、次のように type 属性を使用します。

<cfcontent type="text/html; charset=EUC-JP"> 

cfcontent タグをカスタムタグから呼び出す場合で、現在のページが別のアプリケーションまたはカスタムタグから呼び出されたときに、ページがこのタグによって破棄されないようにするには、reset = "no" に設定します。

ファイル削除オペレーションが正常に終了しない場合は、エラーが発生します。

このタグをページ内の cfflush タグの後に使用しないでください。そのように使用しても効果はなく、ColdFusion でエラーが発生します。

次のタグを使用すると、大部分のブラウザでは、cfcontent タグで指定されたファイルのコンテンツを、filename 属性で指定されたファイル名で保存するかどうかをユーザーに尋ねるダイアログが表示されます。ファイルを開くことを選択すると、大部分のブラウザは、ブラウザウィンドウではなく関連付けられたアプリケーションでファイルを開きます。

<cfheader name="Content-Disposition" value="attachment; filename=filename.ext">

PDF ドキュメントなどの一部のファイルタイプの場合は、実行可能コードを使用せず、大部分のブラウザに直接表示することができます。ブラウザにファイルを直接するようにするには、次のように cfheader タグを使用します。

<cfheader name="Content-Disposition" value="inline; filename=name.ext">

filename 属性の filename 部分には任意の値を使用できますが、ext の部分はそのファイルタイプに関する Windows の標準の拡張子でなければなりません。

Microsoft Excel ドキュメントなど、実行可能コードが含まれている可能性があるファイルタイプの場合、大部分のブラウザでは、ドキュメントを開く前に確認メッセージが表示されます。これらのファイルタイプの場合、ユーザーがファイルを開くことを選択すると、インラインコンテンツ処理の仕様により、ブラウザに対してファイルを直接表示するようにリクエストされます。

文字エンコードの詳細については、次の Web ページを参照してください。

  • www.w3.org/International/O-charset.html には、文字エンコードと Web についての全般的な情報、および役に立つリンクがいくつか掲載されています。
  • www.iana.org/assignments/character-sets には、インターネットで使用され、Internet Assigned Numbers Authority によって管理されている文字セット名の完全なリストが掲載されています。
  • java.sun.com/j2se/1.3/docs/guide/intl/encoding.doc.html には、Java (したがって ColdFusion) が解釈できる文字エンコードのリストが掲載されています。このリストでは、SetEncoding charset パラメータやその他の ColdFusion 属性やパラメータで使われる IANA の文字コード名ではなく、Java の内部名が使用されています。ColdFusion MX 6.0 アップデータ 3 は JDK 1.3 を使用します。CFMX 6.1 は JDK 1.4.2 を使用します。エンコードのサポートについては、http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html を参照してください。

インターネット上で使用されるメディアタイプの完全なリストについては、www.iana.org/assignments/media-types/ を参照してください。

 
<!--- CFCONTENT の例 1
この例は、cfcontent を使用して、CF ドキュメントページの内容をブラウザに
ダイナミックに返す方法を示しています。使用するシステムでの
ColdFusion のインストール方法に応じて、パスやドライブ文字を変更しなければならない場合が
あります。この html ページは相対ファイル名参照を使用しているので、グラフィックは
表示されず、ハイパーリンクも機能しません。
参照のルートはこの ColdFusion ページであり、html ページの場所では
ありません。 --->

<cfcontent type = "text/html"
file = "C:CFusionMX7wwwrootcfdocsdochome.htm" 
deleteFile = "no">

<!--- CFCONTENT の例 2
この例は、Reset 属性でテキストの出力を変更する方法を示しています。最初のテキスト部分 
("この例は、Reset 属性でテキストの出力を変更する方法を示しています。 = "Yes":123) が
画面に出力されないことに注意してください。 --->

<p>この例は、Reset 属性でテキストの出力を変更する方法を示しています。</p>
<p>reset = "Yes ":123 <BR> <cfcontent type = "text/html" reset = "Yes">456</p>
<p>この例は、Reset 属性でテキストの出力を変更する方法を示しています。</p>
<p>reset = "No ":123 <BR> <cfcontent type = "text/html" reset = "No">456</p>
<!--- CFCONTENT の例 3
この例では、Excel ファイルのダウンロードを実行します。ユーザーは、ファイルを
保存するかブラウザで開くかを選択するよう要求されます。 --->

<cfheader name="Content-Disposition" value="inline; filename=acmesales03.xls"> 
<cfcontent type="application/vnd.ms-excel" file="c:tempacmesales03.xls">

<!--- CFCONTENT の例 4
この例では、Word ドキュメントのダウンロードを実行した後に元のファイルを 
"temp" ディレクトリから削除します。ユーザーは、ファイルを
保存するかブラウザで開くかを選択するよう要求されます。 --->

<cfheader name="Content-Disposition" value="inline; filename=temp.doc">
<cfcontent type="application/msword" file="c:tempCable.doc" deletefile="yes"> 

<!--- CFCONTENT の例 5
この例では、ブラウザで HTML テーブルを Excel データとして扱います。 
Excel では HTML テーブル形式が解釈されます。
Excel には実行可能コードが含まれている可能性があるので、ユーザーはファイルを保存するか
ブラウザで開くかを選択するよう要求されます。 --->

<cfheader name="Content-Disposition" value="inline; filename=acmesalesQ1.xls">
<cfcontent type="application/vnd.msexcel">

<table border="2">
<tr><td>Month</td><td>Quantity</td><td>$ Sales</td></tr>
<tr><td>January</td><td>80</td><td >$245</td></tr>
<tr><td>February</td><td>100</td><td>$699</td></tr>
<tr><td>March</td><td>230</td><td >$2036</td></tr>
<tr><td>Total</td><td>=Sum(B2..B4)</td><td>=Sum(C2..C4)</td></tr>
</table>
TYPE  
  オプション
 

ページの MIME コンテンツタイプです。その後にセミコロンと文字エンコードを続けることもあります。デフォルトでは、ページは UTF-8 文字エンコードの text/html コンテンツタイプとして送信されます。

コンテンツタイプにより、ブラウザまたはクライアントがそのページコンテンツをどのように解釈するかが決まります。

使用できるコンテンツタイプの値の一部を次に示します。

  • text/html
  • text/plain
  • application/x-shockwave-flash
  • application/msword
  • image/jpeg

一般的に使用される文字エンコードの値を次に示します。

  • utf-8
  • iso-8859-1
  • windows-1252
  • us-ascii
  • shift_jis
  • iso-2022-jp
  • euc-jp
  • euc-kr
  • big5
  • euc-cn
  • utf-16

例 :

type = "text/html"

type = "text/html; charset=ISO-8859-1"

DELETEFILE  
  オプション
 
Default value: "no"

file 属性でファイルを指定する場合にのみ適用されます。

  • yes: ファイルのコンテンツをクライアントに送信した後で、サーバー上のファイルを削除します。
  • no: サーバー上にファイルを残します。
FILE  
  オプション
 

ページ出力になるコンテンツを含むファイルの名前です。ファイル名は、ドライブ文字とコロン、またはスラッシュや円記号で始まらなければなりません。ColdFusion を分散構成で使用する場合、file 属性には、Web サーバーが稼働しているシステムのパスを指定する必要があります。この属性を使用すると、現在の CFML ページのその他の出力は無視されます。指定したファイルのコンテンツのみがクライアントに送信されます。

VARIABLE  
  オプション
 

cfchart タグで生成されたチャートのコンテンツ、cffile action="readBinary" タグで取り出された PDF ファイルや Excel ファイルなど、ブラウザで表示可能なコンテンツを持つ ColdFusion MX バイナリ変数の名前です。この属性を使用すると、現在の CFML ページのその他の出力は無視されます。指定したファイルのコンテンツのみがクライアントに送信されます。

RESET  
  オプション
 
Default value: "yes"

file 属性または variable 属性を指定した場合、この属性は無効になります。指定しない場合は次のいずれかになります。

  • yes: cfcontent を呼び出す前の出力が破棄されます。
  • no: cfcontent を呼び出す前の出力が保存されます。この場合は、すべての出力が指定のコンテンツタイプで送信されます。