WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:ファイルのダウンロード

0:[投稿] toto [2002/10/26 11:57 ][環境:WIN+IE WIN系+Perl]

WEBサーバー上にあるファイルを左クリックでダイアログを表示させて、
ダウンロードさせようとしているのですができません。

print "Content-disposition: attachment; filename=\"$file\"\n";
print "Content-type: text/download\n\n";

を使うというのは解ったのですが、これだと空ファイルだけできてしまいます。
どうすればいいのでしょうか?


1:[回答] JTR [2002/10/26 12:05 ]

print "Content-type: text/download\n\n";
の後に、ファイルの内容は、出力していますか?


2:[質問] toto [2002/10/26 12:57 ]

こうやってるんですが、ダメなんです。
どこがまちがってるんでしょう?

open(LOG,"abc.txt");

print "Content-disposition: attachment; filename=\"abc.txt\"\n";
print "Content-type: text/download\n\n";

while (<IN>) { print; }
close(LOG);


3:[回答] hoge [2002/10/26 13:00 ]

while (<LOG>) { print }


4:[質問] toto [2002/10/26 13:07 ]

初歩的なミスでした。
すいません。

あと1つお聞きしたいのですが、
このCGIが/cgi-binにあるとします。
しかし、ダウンロードしたいファイルが、/cgi-bin/temp/name
にある場合、どう定義したらいいのでしょうか?


5:[回答] hoge [2002/10/26 14:18 ]

open LOG, "/cgi-bin/temp/name" or die $!;

こういうこと?


6:[質問] toto [2002/10/26 15:01 ]

hogeさん、ありがとうございます。

色々テストしている間に、別の疑問が出てきました。

aaa.pmやbbb.001の様に関連付けされていないファイルを
ダウンロードしようとすると、テキストファイルとして保存されてしまいます。
$fileで指定した拡張子でダウンロードしないのでしょうか?


#!/usr/bin/perl
$file = 'aaa.pm';
print "Content-type: application/octet-stream; \n";
print "Content-Disposition: attachment; filename=\"$file\"\n\n";
open(IN, "./temp/name/$file");
binmode(IN);
binmode(STDOUT);
while (<IN>) { print; }
close(IN);


7:[回答] JTR [2002/10/30 12:00 ]

>テキストファイルとして保存されてしまいます。
拡張子が .txt になるということですか?

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World