こんにちは。
CGIの初心者です。
今CGI経由でのPDFファイルをダウンロードするというプログラムを作っています。
ただ、ダウンロードしたファイルは開けなく、エラーが出ます。ファイルを確認すると0バイトです。原因はよく分からないので、誰かが教えてください。ありがとうございます。
コードです:
$filename = './data/sheet.pdf';
$source = $filename ;
print qq|Content-type: text/plain\n|;
print qq|Content-Disposition: attachment; filename="$filename"\n|;
print qq|\n|;
#-- ファイルを読み込んで出力
open(FILE,"$source");
binmode FILE;
binmode STDOUT;
while(read(FILE, $value, 4096)){
print $value;
}
close FILE;
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
テストしてないので、漏れてるかもしれないけど、
気になったことだけ・・・・
1)
Content-type: text/plain
↓
Content-type:application/pdf
2)
Content-Disposition: attachment; filename="$filename"
の$filenameはパス('./data/')を含まない、ファイル名('sheet.pdf')のみに。
3)
open(FILE,$source);
をヘッダを printしている前にもってきて
open(FILE,$source) or die("error :$!");
に変更。(ファイルの存在チェック)
この回答への補足
superside0さん。
早速ご回答して頂きありがとうございます。
指定の通りに直してみましたが、サーバーから"500 Internal Server Error”のエラーが表示されます。ファイルパーミッションを755を変更してみても変わらない。
open(FILE,$source) or die("error :$!");
をprintしている後に書くとダウンロードダイアローグが表示され、ダウンロードできますが、ファイルは0バイトです。
printしている前に書くと上記のエラーが出ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(クラウドサービス・オンラインストレージ) Google ColabでGoogleドライブのサブフォルダにファイルを生成する方法 1 2022/10/31 17:37
- Perl perlのflock関数でロックをかけたままopen関数で何度もファイルを開きなおすことはできますか 3 2023/05/01 22:25
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlからパラメータで、cgiに渡...
-
フォントサイズを変えるには?
-
指定のフォルダに指定のファイ...
-
サーバー上のPDFにCGIでパスワ...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
チェックボックスの返す値
-
WEBページを強制的に横画面で見...
-
INPUT TYPE
-
1つのformに2つのsubmitボタン
-
FC2 掲示版のカスタマイズの仕...
-
「value」に2つの値をセットす...
-
<select>タグの幅設定
-
IIS の@INC ERRORについて教えて
-
MSPゴシックで、一番幅を取る文字
-
iPhoneでセレクトボックスが選...
-
プログラミングについての質問...
-
index.html(トップページ)か...
-
電話番号を読み込むプログラム...
-
別formのhidden項目を自form値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlからパラメータで、cgiに渡...
-
metaタグについて
-
CGI経由でのPDFファイルをダウ...
-
sendmail 送信先を複数設定す...
-
perl/cgi リダイレクトができない
-
iis+cgiでmultipart/form-data...
-
フォントサイズを変えるには?
-
テキストエリアのインプットをP...
-
ホームページビルダーで作ったh...
-
cgi(perl) sendmailの使い方
-
CSVを読み込んでメニューを作成...
-
フォームメール(iモード用)で...
-
POST送信
-
CGIで~秒後にジャンプします。...
-
cgiについて教えて下さい。
-
CGI内でけいたいスマホの振り分け
-
CGIから表生成(1行に数件のデ...
-
ログファイルの編集についてお...
-
CGI
-
Yomi-Search追加機能で・・・
おすすめ情報