1クリックで複数のファイルをダウンロードというのは、HTMLだけでは難しいのではと思います。
チェックボタンがあるとおうことはFORM内なので、単純にそのままsubmitしてCGIを呼び出す形にするなら
そこで受け取ったCGIプログラムが、その都度、システムコールでlhaなりを呼び出して1ファイルにまとめた一時ファイルを作り、そのファイルへのリンクを示すHTMLを生成させれば、
1クリックで全ファイルをダウンロードさせるという方法ができると思います。
もちろんダウンロード後に利用者がファイルを解凍する手間が発生しますし、相手がMacだと難しいかもしれません。
また、その一時ファイルがどんどんたまるので、サーバー側で、自動で掃除をさせる仕掛けを作る部分が必要ですね。
(サーバーがUNIXならcron をつかって find で一定時間アクセスのないファイルを削除というのを定期実行させれる形になりますかね。)
ここまでややこしくすると、サーバー側も利用者側も大変なので、
かえって、各ファイルをダウンロードさせたほうがシンプルかもしれません。
(ファイルを選択させる関係が難しいなら選んだテーマに関係するファイルへのリンクだけを表示するCGIを作って、そこからは全部ダウンロードさせるとか)
あと、方法としてはボタン操作をCGIにsubmitさせるのでなく、ボタンのイベントをJavaScriptに渡して、JavaScriptにファイルをgetさせるという方法もあるのかもと思いましたが、JavaScriptだと、ローカルディスクへのファイル操作というのは無理だったように記憶しております。
(もしかして、なにか方法があるかもしれませんので、調べてみてください)
あと、Netscapeのインストーラーなんかで使われているような仕組みだと
インストーラーのみダウンロードさせて、そのアプリケーションを実行して
そこでインストールレベルを選択することで必要なファイルをインストーラー自身がダウンロードするというのがありますね。
クライアント側のプラットフォーム(Windowsだとか、Macintoshだとか)が
固定化できるのであれば、これもいいかもしれません。
#Proxyアクセスが必要かどうかを自動で調べたりとかもあるので、開発は面倒そうですが・・
|