Perlでダウンロードしたデータのファイル名を指定する方法をお教え下さい。スクリプト自体と同じファイル名になってしまって困っております。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/03/02 18:16:19
  • 終了:--

回答(3件)

id:raby No.1

raby回答回数21ベストアンサー獲得回数02004/03/02 18:31:56

ポイント30pt

PerlでDLさせたいのであれば

Content-Disposition: attachment; filename=ファイル名

と指定してやれば良いと思います

id:DocSeri

これはprintでヘッダあたりに書き出すのでしょうか。

済みません、ちょっと検索かけたのですが今ひとつ良く判りませんでした。

2004/03/02 20:09:57
id:kabao2003 No.2

kabao2003回答回数99ベストアンサー獲得回数02004/03/02 19:52:29

ポイント20pt

〜.cgi/downloadname.lzh

などとすればよいようです。

id:DocSeri

ダウンロード時のURLそのものを変更してしまうということでしょうか。それは考えませんでした。

ここに「この名前はCGI側にも「PATH_INFO」という環境変数として渡ります」とありますが、これを書き換えることでもダウンロードファイル名は変更できるでしょうか。

ちょっと試してみた限りでは巧く行っていないようなのですが、やり方が悪いのかも知れません。

2004/03/02 20:14:16
id:pmakino No.3

まきのっぴ回答回数355ベストアンサー獲得回数282004/03/02 21:04:06

ポイント40pt

http://support.microsoft.com/default.aspx?scid=kb;ja;436616

ファイルをダウンロードする ASP.NET Web ページで日本語ファイル名が文字化けする

Content-Disposition は、HTTP ヘッダとして出力します。

Perl で作成する CGI には、決まり文句として冒頭あたりに

print ”Content-Type: text/html;¥n¥n”;

というような記述があると思いますが、それが HTTP ヘッダです。

ですので、そこに同様に

print ”Content-Disposition: attachment; filename=ファイル名¥n”;

というような感じで記述してやります。

なお、この Content-Disposition は日本語ファイル名を指定すると文字によっては化けますので注意して下さい。どちらかといえば PATH_INFO を利用する方がおすすめです。(PATH_INFO を利用する場合でもブラウザによってはやっぱり文字化けしますが)

id:DocSeri

ご丁寧な解説ありがとうございます。試してみることにします。

2004/03/03 13:20:05

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません