人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: 芹沢文書
●カテゴリ:ウェブ制作
✍キーワード:Perl スクリプト ダウンロード データ ファイル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● raby
●30ポイント

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

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

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

◎質問者からの返答

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

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


2 ● kabao2003
●20ポイント

http://tohoho.wakusei.ne.jp/lng/199810/98100024.htm

〜.cgi/downloadname.lzh

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

◎質問者からの返答

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

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

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


3 ● まきのっぴ
●40ポイント

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 を利用する場合でもブラウザによってはやっぱり文字化けしますが)

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ