- ベストアンサー
指定フォルダ内のファイル一括DL
指定フォルダ内のファイル一括DL ホームページ訪問者が、指定フォルダ内のファイルを一括してダウンロード できるようにしたいです。ボタンを押せばダウンロード開始…なんて言う事 は出来ないでしょうか? 出来るとすればPerlではどの様な記述になるのかご教示お願い致します。
- みんなの回答 (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; }
その他の回答 (1)
- moon_night
- ベストアンサー率32% (598/1831)
LZHなりZIPなりで圧縮してはだめでしょうか。
補足
レスありがとうございます。 HPを訪問した人にDLさせたいファイルは、PERLで自動書出しした複数のHTMLで 訪問するたびにファイルの内容は変わります。 REMOTE_ADDRで取得した数値をフォルダ名として、その中に訪問者ごとの HTMLファイルをPerlで自動書出ししたものをボタンをクリックして一括で DL出来るようにしたいのですが… 出来るとしたら、どの様な記述になるのでしょうか? 宜しくお願い致します。
補足
レスありがとうございます。 早速ソースを試させて頂きましたが、上手く動作しませんでした。 パスの設定などが悪いのか… 初心者は言い訳になりませんが、ソースの内容もイマイチ掴めないでいます。 お手数をお掛けして申し訳ございませんが、もう少し詳しく使い方を解説 していただけると助かります。 何卒宜しくお願いします m(_ _)m