説明
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 のコンテンツが文字列である場合にのみ使用されます。
例えば、次の文字セットを指定できます。
|
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 ファイルに追加されます。
|
encryptionAlgorithm |
オプション |
|
圧縮に使用する暗号化アルゴリズムです。使用できるオプションは次のとおりです。
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>
|