
Webページに「ダウンロード」というボタンかリンクがあり、それをクリックするとローカルコンピュータにWebサーバーにあるテキストファイルをダウンロードできるCGIを作成したいのですが・・・
以前に同じ質問を上げたら「Content-type: text/download
」としたらいいよ・・・と教えたもらったのですが、もひとつピンとこなくて、簡単なコーディング例みたいなものを誰か教えてください。
それだけわかったら自分でなんとかしろよ!と思われるかもしれませんが小生Perl初心者の為、???なのです。
No.2ベストアンサー
- 回答日時:
あれれ?うちではうまく行くんですが・・・
別のHTMLのリンクからCGIを起動してもだめでしょうか?
もしかしたら、サーバーかブラウザの問題なのかも知れません。だとすると、申し訳ないのですが分かりません。
別のHTMLからリンクしたらいけました。
ありがとうございます。
しかしURLをダイレクトにアドレスバーに入力するのとリンクで違うのですね・・・これもびっくり
20ポイントと気持ちだけのヴァーチャルアサヒスーパードライ12缶セットをお送りします。これからもよろしくお願いします。
No.1
- 回答日時:
CGIでWebページを出力する時は、
print "Content-Type: text/html; charset=Shift_JIS\n\n";
# この後、ページの内容を出力
みたいにしますよね。
この「Content-Type: ~」というのは、アクセスしてきたブラウザに対してこういうデータを返す(送る)よ、というメッセージなんです。
ブラウザはそのメッセージが text/html だったらHTML文書として表示し、text/download なら保存のダイアログを開く、というわけです。
なので、
#! /usr/bin/perl
# ↑自分のサーバ環境に合わせてね
open FH, "パス/ファイル名";
print "Content-Type: text/download\n\n";
print <FH>;
close FH;
のようなCGIを書いて、ダウンロードのリンクやボタンの参照先にしてやればOKです。
ちなみに、ダウンロードするファイル名を指定したい場合は、
print "Content-Type: text/download\n\n";
を
print <<__EOH__;
Content-Type: text/download; name="ファイル名"
Content-Disposition: inline; filename="ファイル名"
__EOH__
としてください。(__EOH__の前に、空行が1つ入っています。)
この回答への補足
leaz024さん、いつもお世話になります。
え~っと「保存するファイルをTAB区切りにする」のと「文字列の先頭文字を取り出す」という質問に答えていただいて今度は3回目です。本当に助かってます。お中元贈らないと・・・(送り先がわからん!)
さて、おっしゃる通り
#! /usr/bin/perl
# ↑自分のサーバ環境に合わせてね
open FH, "./jikken.txt";
print "Content-Type: text/download\n\n";
print <FH>;
close FH;
とやってみました。CGIファイル名はdl.cgi ダウンロードデータはjikken.txtで、
ローカルコンピュータ上でためしてみたんですが
「Internet Explorerではlocalhost-dl.cgiをダウンロードできませんでした。このインターネットサイトを開くことが出来ませんでした。要求されたサイトが使用できないか、または見つけることができませんでした。後でやり直してください。」
とエラーが表示されます。どうしたもんでしょうか?ローカルでは試せないということでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlのエラーについてご教授く...
-
perlについての質問
-
INDIRECT 横に再度抽出したい
-
openした後、closeしないでプロ...
-
テキストファイルで提出とは?
-
検索ボックスから製品名を検索...
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サーバーのテキストファイルを...
-
html →perlへフォームを渡そう...
-
canonicalのURLエンコードについて
-
他のWWWサーバーからHTMLを得る
-
Perl CGI 初心者
-
表示を一覧表形式にしたいので...
-
標準入力からデータが読込めない
-
perlのcgiが文字化けします。
-
SUN BBSの改造方法
-
wordの数式について 定積分を書...
-
掲示板(kentさんの所のsunbbs...
-
ラジオボタンが両方とも選択で...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
[HTML]プルダウンメニューの横...
-
WEBページを強制的に横画面で見...
-
FORMのselectの選択肢を最初か...
-
VB.net データーグリッドビュー...
-
MSPゴシックで、一番幅を取る文字
-
パールの-pオプションの値0777...
おすすめ情報