• ベストアンサー

指定フォルダ内のファイル一括DL

指定フォルダ内のファイル一括DL ホームページ訪問者が、指定フォルダ内のファイルを一括してダウンロード できるようにしたいです。ボタンを押せばダウンロード開始…なんて言う事 は出来ないでしょうか? 出来るとすればPerlではどの様な記述になるのかご教示お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

以下、全角の空白があるので半角2文字の空白に置換して下さい。 use strict; use warnings; use utf8; use CGI; use CGI::Carp qw(fatalsToBrowser); use CGI::Pretty; use Archive::Zip qw(:ERROR_CODES); use constant TARGET_DIR  => '/var/log/apache2'; use constant ARCHIVE_FILE => 'download.zip'; my $q    = CGI->new(); my $download = $q->param('Download'); if ( defined($download) ) {   my $zip = Archive::Zip->new();   # addTree doesn't work on perl taint mode   if ( $zip->addTree(TARGET_DIR) != AZ_OK ) {     die "addTree : " . TARGET_DIR;   }   print $q->header(     -type    => 'application/octet-stream',     -attachment => ARCHIVE_FILE   );   if ( $zip->writeToFileHandle(*STDOUT) != AZ_OK ) {     die "writeToFileHandle : " . TARGET_DIR;   } } else {   print $q->header( -charset => 'UTF-8' ),     $q->start_html(     -lang => 'ja',     -title => ' download test '     ),     $q->start_form( -method => 'get', -action => $q->script_name ),     $q->submit("Download"),     $q->end_form,     $q->end_html; }

qwert789
質問者

補足

レスありがとうございます。 早速ソースを試させて頂きましたが、上手く動作しませんでした。 パスの設定などが悪いのか… 初心者は言い訳になりませんが、ソースの内容もイマイチ掴めないでいます。 お手数をお掛けして申し訳ございませんが、もう少し詳しく使い方を解説 していただけると助かります。 何卒宜しくお願いします m(_ _)m

その他の回答 (1)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

LZHなりZIPなりで圧縮してはだめでしょうか。

qwert789
質問者

補足

レスありがとうございます。 HPを訪問した人にDLさせたいファイルは、PERLで自動書出しした複数のHTMLで 訪問するたびにファイルの内容は変わります。 REMOTE_ADDRで取得した数値をフォルダ名として、その中に訪問者ごとの HTMLファイルをPerlで自動書出ししたものをボタンをクリックして一括で DL出来るようにしたいのですが… 出来るとしたら、どの様な記述になるのでしょうか? 宜しくお願い致します。

関連するQ&A