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で質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) WEBサイト内のファイルを探す方法は? 1 2022/11/11 16:38
- その他(Microsoft Office) microsoft Teams(work or school)が自動的にダウンロードされてしまいます 2 2022/09/15 17:34
- ネットワーク 自分のPC(ローカル環境)から,Webページにアクセスする過程についての質問です。 1 2023/03/19 23:00
- サーバー Webページに繋がるまでの流れについての質問です。 2 2023/03/19 23:15
- サーバー (童顔♀です)webサイト納品後,記事更新をこちらでする場合どうやりますか....? 3 2023/08/09 04:44
- サーバー メールサーバーについて詳しい方、メールサーバーの管理業務経験のある方、教えてください。 3 2022/11/12 18:24
- ホームページ作成・プログラミング ログインしないとみることができないWebページの作成方法 3 2023/07/29 13:33
- その他(ブラウザ) Webブラウザについての質問です。 2 2023/03/21 19:23
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- サーバー Webサイト構築フリーランスの案件受注について 1 2022/03/27 18:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlにおけるセッションIDについて
-
『数字の3桁毎にカンマを付け...
-
標準入力からデータが読込めない
-
HTMLからCGIへデータを引き継ぎ
-
ラジオボタンが両方とも選択で...
-
wordの数式について 定積分を書...
-
SUN BBSの改造方法
-
チェックボックスの返す値
-
プログラミングについての質問...
-
INPUT TYPE
-
別formのhidden項目を自form値...
-
htmlからパラメータで、cgiに渡...
-
マップの縦幅
-
入力規則をまとめて定義
-
WEBページを強制的に横画面で見...
-
perl/cgi リダイレクトができない
-
テキストBOXの縦幅を変えたい
-
Webアプリケーションを作りたい!
-
perlで書いたcgiでsqliteの使い...
-
FORMのselectの選択肢を最初か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サーバーのテキストファイルを...
-
XML::Simpleの使い方について
-
IIS の@INC ERRORについて教えて
-
Mechanizeにおけるボタンクリッ...
-
perl の grepで 全角カタカナで...
-
フォームメール確認用ページ
-
標準入力からデータが読込めない
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
select値をhiddenのvalueに渡し...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
INPUT TYPE
-
WEBページを強制的に横画面で見...
-
[HTML]プルダウンメニューの横...
-
VB.net データーグリッドビュー...
-
別formのhidden項目を自form値...
-
FORMのselectの選択肢を最初か...
-
VB初心者。小数点以下の表示で...
-
EXCELとの連携
おすすめ情報