ApexだけでSalesforceの添付ファイルをZipしてダウンロード

この投稿より2年ぐらい前に、 Apex+JSZipでSalesforceの添付ファイルをZipする実装方法を共有しましたが、最近1つもっと簡単な実装方法を見つかりました、”Zippex” ( view on Github )とういApexライブラリだけでの実装方法であります。

次は今回共有するサンプルコードの処理概要となります:

1. 特定のオブジェクトIdから添付ファイルを取得します。
2. Zippexで全ての添付ファイルをZipします。
3. zipファイルのBlobデータをDocumentに保存します。
4. DocumentダウンロードURLにリダイレクトし、Salesforceダウンロード機能でファイルをダウンロードします。

早速はじめましょう。

添付ファイルの用意

取引先に2つ添付ファイルを用意します。e.g. apex PDF.pdf と apex Word.docx.

Account

Zippexライブラリソースのアップロード

Zippexライブラリソース( view on Github)をSalesforce組織環境にアップロード&コンパイルします。

サンプルクラスとVFページの作成

ApexZipSampleController.cls

ApexZipSample.page

動作確認してみて、問題なさそうですね。: )

Apex zip sample page
apex-zip-sample
上記の全てのソースは私のGithubリポジトリ (こちら) からダウンロードも可能です。

もう一言 :

このライブラリをプロジェクトに導入する前に、想定の最大数のファイルと最大サイズのファイルでのケース確認をしたほうがいいです、Apex CPU Governorエラーが発生する恐れがあるからです。

Enjoy It!