カレッヂ |
質問者 かず
投稿日 5/18(金) 18:42:47
どうにもこうにもな状態なので、質問させていただきます お助け願えると大変有り難いです 複数ファイルを指定して、一括ダウンロードをPerlにて行いたいのですが どうも、複数ファイルを指定してもダメで、思いついたのが圧縮です Perlからの複数ファイルを1書庫に圧縮する方法をご教授願います 圧縮形式はクライアントにあわせ、ZIPがLHAだと助かります サーバー環境としては、UNIX系(SUN)ですが、出来ればWindows系でも 動作するとテスト等で楽になります (実は本来のサーバーがNTになるかSUNになるか検討中でもあります) SUNの場合のサーバーはアパッチ、NTならIISがサーバーです Perlのバージョンは5系です 以上、よろしく御願い致します |
回答者 まさ
[削除]
投稿日 5/20(日) 12:44:23
ZIPへの圧縮ならばモジュールを使えば可能です。 LHAの圧縮はわかりません。恐らく無理だと思いますけど。 まったくのゼロから自分でエンジン部分を作るのならば可能でしょうが、モジュールのように 簡単にはいかないです。 PerlにActivePerlを使っていればWindowsでもUNIXでも動きます。 ただどのモジュールを使うのかは忘れてしまったので、もしかしたらWindows版はないかも知 れませんね。 UNIXのモジュールは以下から自分で検索してみて下さい。 http://search.cpan.org/ 「ZIP」「ARCHIVE」等で検索すればいいでしょう。 ただ複数のファイルをダウンロードさせるのなら圧縮もいいですが、そのファイルを配列にで も入れてループさせて順番にダウンロードさせていったらできません? |
質問者 本人
[削除]
投稿日 5/21(月) 08:41:58
foreach $file (@files){ chomp($file); $tmp = $dir . $file; open(LOG,"$tmp"); @DATA = <LOG>; close(LOG); print "Content-disposition: attachment; filename=\"$file\"\n"; print "Content-type: text/download\n\n"; print @DATA; } ※@filesにはファイル名、$dirには格納ディレクトリ名 上記のようなスクリプトで試してみたんですが、一つ目のファイル名で 全てのファイル内容が(Contentの2行を含めて)ダウンロードされて しまいましたので。。。圧縮なんてことを考えていました |
回答者 まさ
[削除]
投稿日 5/22(火) 12:17:13
わたしはファイルのダウンロードに print "Location: ....\n\n"; を使います。 foreach (@files) { $tmp = $dir . $_; print "Location: $tmp\n\n"; } こうしてやるとどうなりますか? これはわたしにも想像できないです。 一度やってみて下さい。 |
質問者 本人
[削除]
投稿日 5/22(火) 12:39:02
まさ さん、ありがとうございます 上記、実験してみました 環境はWin98+An-httpd+ActivePerlです クライアント側はIE5.5とNN4.75の両方で試しましたが。。。 ファイル名の拡張子がtxtだからかもしれませんが。。。 ひとつめのファイルをブラウザ上に(text/plainのように)表示 して終わりました 二つ目以降は表示すらしません(^^; もう少しいろいろ試してみます |
回答者 まさ
[削除]
投稿日 5/22(火) 14:45:20
Windows環境ですか、それならば使えないかもしれないですね。 わたしもWin95 + Apache1.3.12 + ActivePerl Build522で print "Location: ...\n\n"; を実行すれば確かおかしくなったと思います。 txtが表示されるのは設定で何とかなります。 AnHTTPDは分かりませんが、Apacheなら.htaccess等でtxtをダウンロード用に変更することは 可能です。 |
質問者 本人
[削除]
投稿日 5/22(火) 15:00:32
上記サーバーは実験用です 本来のサーバーはSUNでネスケサーバーを使う予定です サーバーの設定は基本的に私の一存では替えられないのが辛いとろこです (もっとも、ブラウザの設定で替える方法も有りますが) それでも、どうやら一つ目のファイルしかうまく行かないようですので。。。 (ひとつめのファイル内容しか表示しないことから) さらに実験してみます |
返信(回答)する
Web裏技 |