説明

cfzip タグに追加情報を提供します。

cfzipparam タグは、常に cfzip タグの子タグです。

履歴

ColdFusion 11:password および encryptionalgorithm という 2 つの新しい属性が追加されました。

ColdFusion 8: このタグが追加されました。

カテゴリ

ファイル管理タグ

シンタックス

<cfzip ..>
<cfzipparam
charset = "encoding type"
content = "variable name"
entryPath = "full pathname"
filter = "file filter"
prefix = "string"
recurse = "yes|no"
source = "source directory"
optional
encryptionAlgorithm = "standard|AES-128|AES-256"
password = "password string">
</cfzip>

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

関連項目

cfzip

属性

属性

必須/オプション

デフォルト

説明

charset

オプション

ホストマシンのデフォルトのエンコード

文字列コンテンツを ZIP または JAR ファイルに書き込む前にバイナリデータに変換します。cfzip action="zip" が指定されていて、cfzipparam のコンテンツが文字列である場合にのみ使用されます。

例えば、次の文字セットを指定できます。

 

  • JIS

  • RFC1345

  • UTF-16

 

content

オプション

 

ZIP または JAR エントリに書き込むコンテンツです。cfzip action="zip" が指定されている場合にのみ使用されます。

有効なコンテンツデータのタイプは binary および string です。content 属性を指定する場合は、entrypath 属性を指定します。

entryPath

オプション

 

使用するパス名です。

 

  • cfzip action="zip" の場合は、使用するエントリパスを指定します。これは、source がファイルの場合にのみ有効です。エントリパスを指定すると、ZIP または JAR ファイル内にサブディレクトリが作成されます。

  • cfzip action="unzip" の場合は、展開先のパス名を指定します。

  • cfzip action="delete" の場合は、ZIP または JAR ファイルから削除するパス名を指定します。

 

filter

オプション

 

アクションに適用するファイルフィルタです。例えば、zip アクションの場合は、フィルターに一致する source ディレクトリ内のファイルがすべて圧縮されます。

prefix

オプション

 

ZIP または JAR エントリに接頭辞として追加する文字列です。cfzip action="zip" が指定されている場合にのみ使用されます。

recurse

オプション

yes

親の cfzip タグで指定されたアクション(圧縮、展開または削除)をこのディレクトリに適用するかどうかを指定します。

source

オプション

 

ソースディレクトリまたはファイルです。cfzip action="zip" が指定されている場合にのみ使用されます。

指定されたファイルは、ZIP または JAR ファイルに追加されます。

 

  • cfzip タグで source 属性が指定されている場合、cfzipparam source は相対パスで指定します。

  • cfzip タグで source 属性が指定されていない場合、cfzipparam source は絶対パス名で指定する必要があります。

 

encryptionAlgorithm オプション  

圧縮に使用する暗号化アルゴリズムです。使用できるオプションは次のとおりです。

  • AES-256
  • AES-128
  • Standard

CFZip タグに属性が指定されている場合、CFZipparam タグの対応する属性によってそれらの属性を継承またはオーバーライドできます。

パスワードのみが指定されている場合のデフォルトの encryptionAlgorithm は AES 256 ビットです。

ディレクトリとともに使用した場合、そのディレクトリ内のすべてのファイルが同じパスワードと暗号化によって保護されます。
password read readBinary zip unzip encryptionAlgorithm を指定している場合は必須 アーカイブを保護するためのパスワードです。

使用方法

複数のファイルまたはディレクトリを圧縮、展開、削除するには、cfzipparam タグと cfzip タグを組み合わせて使用します。例えば、複数のディレクトリを圧縮するには、ソースディレクトリごとに cfzipparam タグを指定します。

例 1

<!--- This example shows how to zip class files from one subdirectory and class and property files from another directory into a JAR file.



---> <cfzip file="c:¥util.jar" source="c:¥myproj¥classes"> <cfzipparam source="com¥abc¥util" filter="*.class"> <cfzipparam source="com¥abc¥io" filter="*.class, *.properties"> </cfzip>

例 2

<!--- This example shows how to update a ZIP file with files from multiple locations, each with a different filter. --->
<cfzip file="e:¥work¥test.jar" action="zip">
<cfzipparam source="c:¥temp¥abc.txt" prefix="com¥abc">
<cfzipparam source="c:¥src¥classes" recurse="yes"
filter="*.class,*.properties" prefix="classes">
<cfzipparam source="c:¥src¥Manifest.MF" entrypath="META-INF¥MANIFEST">
</cfzip>

例 3

<!--- This example shows how to insert the string format for a programmatically generated XML file into a ZIP file. --->
<!--- Create a variable that specifies a time-out period. --->
<cfset myDoc="<system-config><timeout>1500</timeout><pool-max-size>30
</pool-max-size></system-config>">
<!--- Zip the file. --->
<cfzip file="e:¥work¥test.zip" action="zip">
<cfzipparam source="c:¥src¥Manifest.MF" entrypath="META-INF¥MANIFEST">
<cfzipparam content="#myDoc#" entrypath="system-config.xml">
</cfzip>

例4

<!--- This example shows how to update a JAR file with a new version of the file and add some new files to the JAR file. --->
<cfzip file="e:¥work¥admin.jar">
<cfzipparam source="c:¥src¥classes" recurse="yes"
filter="*.class,*.properties">
<cfzipparam source="c:¥src¥Manifest.MF" entrypath="META-INF¥MANIFEST">
</cfzip>

例5

次の例は、フォームから選択された複数のイメージファイルを ZIP 形式で圧縮し、イメージを要求したユーザーにその ZIP ファイルを電子メールで送信する方法を示しています。

最初の ColdFusion ページによって、データベースクエリーから生成されたアーティストの名前がポップアップメニューに挿入されます。

<!--- The following code creates a form for selecting images. --->
<h3>Select the images</h3> <p>Please choose the images you would like sent to you.
</p>
<!--- Create the ColdFusion form to select the images. --->
<table>
<cfform action="zip2_action.cfm" method="post"
enctype="multipart/form-data">
<tr>
<td><img src="../cfdocs/images/artgallery/elecia01.jpg"/><br/>
<cfinput type="checkbox" name="ck1" Value=1>Cube</td>
<td><img src="../cfdocs/images/artgallery/elecia02.jpg"/><br/>
<cfinput type="checkbox" name="ck2" Value=1>Pentagon</td>
<td><img src="../cfdocs/images/artgallery/elecia03.jpg"/><br/>
<cfinput type="checkbox" name="ck3" Value=1>Surfer Dude</td>
<td><img src="../cfdocs/images/artgallery/elecia04.jpg"/><br/>
<cfinput type="checkbox" name="ck4" Value=1>Surfer Girl</td></tr>
<tr><td><cfinput type = "Submit" name = "OK" label="OK"></td></tr>
</table>
</cfform>

最初のアクションページでは、フォームから選択されたファイルを圧縮し、ZIP ファイルをハードドライブに書き込みます。このページには ZIP ファイルを電子メールで送信するためのフォームも含まれています。

<!--- Determine the absolute pathname on the server. --->
<cfset thisDir = ExpandPath(".")>

<!--- Create a ZIP file based on the selections from the form. Use the cfzipparam tag to specify the source for each check box selection. --->
<cfzip file="c:¥images.zip" source="#thisDir#" action="zip" overwrite="yes">
<cfif IsDefined("form.ck1")>
<cfzipparam source="../cfdocs/images/artgallery/elecia01.jpg">
</cfif>
<cfif IsDefined("form.ck2")>
<cfzipparam source="../cfdocs/images/artgallery/elecia02.jpg">
</cfif>
<cfif IsDefined("form.ck3")>
<cfzipparam source="../cfdocs/images/artgallery/elecia03.jpg">
</cfif>
<cfif IsDefined("form.ck4")>
<cfzipparam source="../cfdocs/images/artgallery/elecia04.jpg">
</cfif>
</cfzip>
<h3>Mail the ZIP File</h3>
<p>Please enter your e-mail address so we can send you the ZIP file as an attachment.</p>
<cfif IsDefined("form.mailto")>
<cfif form.mailto is not "" >
<cfoutput>
<cfmail from="coldfusion@adobe.com" to="#form.mailto#"
subject="see zipped attachment">
The images you requested are enclosed in a ZIP file.
<cfmailparam file="#thisDir#/images.zip">
</cfmail>
</cfoutput>
</cfif>
</cfif>
<cfform action = "zipArt_action2.cfm" method="post">
Your e-mail address: <cfinput type = "Text" name = "MailTo">
<!--- Specify the required field. --->
<cfinput type = "hidden" name = "MailTo_required"
value = "You must enter your email address">
<cfinput type = "hidden" name="zipPath" value = "c:¥images.zip">
<p><cfinput type = "Submit" name = "OK" label="Mail">
</cfform>

2 番目のアクションページでは、ZIP ファイルをメールに添付して送信します。

<h3>Mail the ZIP file</h3> <p>Your file has been mailed to you.
</p>
<cfset eMail="#form.MailTo#">
<cfset zipPath="#form.zipPath#">
<cfmail from="coldfusion@adobe.com" to="#eMail#"
subject="see zipped attachment">
The images you requested are enclosed in a ZIP file.
<cfmailparam file="#zipPath#">
</cfmail>

zip アーカイブをパスワードによって保護します。

<cfzip action="zip" file="<zip_file_path>" source="<source_dir_path>" password="admin" encryptionAlgorithm="AES-128" />
<cfzip action="unzip" file="<zip_file_path>" destination="<dest_dir_path>" >
<cfzipparam entrypath="sample.txt" password="admin" encryptionAlgorithm="AES-128">
</cfzip>

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

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