CGIの知識が全くなく、いろいろなサイトを参考にさせていただいています。
表現等が正しくないことがあるかもしれませんが、ご了承下さい。
htmlのsubmitからcgiを経由してpdfをダウンロードさせるように作成中です。
cgiは、下記Uページを参考にさせていただきました。
http://www.abe-tatsuya.com/web_prog/perl_cgi/con …
#実際の記述<-----------------------------------------------
#-- ダウンロードさせる元ファイル
$source = 'doc.pdf';
#-- 保存時のファイル名(デフォルト)
$filename = '申込書.pdf';
#-- HTTPヘッダ送信
print qq|Content-type: application/pdf\n|;
print qq|Content-Disposition: attachment; filename="$filename"\n|;
print qq|\n|;
#-- ファイルを読み込んで出力
open(FILE,"$source");
while(<FILE>){print;}
close(FILE);
#--------------------------------------------------------->
上記の結果、ダウンロードはできるのですが、
Acrobatのエラーで、「この文章を開くときにエラーが発生しました。ファイルが壊れています。修復できませんでした。」
というメッセージが表示されます。
PCを変えてみたりもしましたが、どのPCからダウンロードしても同じです。
ちなみに、ウェブサーバーへアップロードする前のpdfは、ちゃんと開きます。
何が原因なのでしょうか?
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
では、元のファイルと、ダウンロードしたファイルを、バイナリー比較可能なツールを使って比較してみてください。
おそらく、違ったものになっています。
ファイルをテキストモードで開いて、「1行」ずつ読み込んで(<FILE>)、 テキストモードで出力(print)しています。
テキストモードでバイナリファイルの読み書きをすると、「文字化け」を起すことがあります。
binmodeでバイナリーモードにしましょう。
<>はバイナリーには向かないので、 read等を使いましょう
http://perldoc.jp/func/read
このプログラムに無い部分や、サーバーの設定によっては、別の対策も必要かもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- PDF Adobe Acrobat Reader について 3 2023/02/24 20:19
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
- その他(IT・Webサービス) WPからダウンロードしたファイル名を指定したい 2 2022/04/08 08:31
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のCGIだけ、作動するかわり...
-
cgiファイルがダウンロードでき...
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
URLに~/cgi-bin/~を隠す方法
-
スタイルシートをアップしたい
-
FTPにて553エラー
-
オンラインブックマーク
-
異なるディレクトリからライブ...
-
VBScriptで、ファイルから任意...
-
これらの2つの違いを教えて下...
-
「CGIの実行時にエラーが発生し...
-
KENT WEB(昨日の続きです)
-
IISでエラー、Apachでは動くの...
-
VBAでサーバーにアクセスするに...
-
勝手にパーミッションが書き換...
-
Movable Type 5 個人無償ライセ...
-
急にCGIが動作しなくなった。
-
shtmlがダウンロードされてしま...
-
MT/カスタムフィールドでのPDF...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のCGIだけ、作動するかわり...
-
cgiファイルがダウンロードでき...
-
「メニューハンドルが無効です...
-
ファイルダウンロード後に、デ...
-
cgiでファイルダウンロード時の...
-
URLの表示を隠す方法
-
イベントカレンダー evcal.cgi
-
cgi 掲示板 ダウンロード
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
URLに~/cgi-bin/~を隠す方法
-
VBAでサーバーにアクセスするに...
-
CGIでソースがそのままでてしま...
-
ラジオボタンのグループ化
-
ASP(IIS?)のエラーについて
-
FTPにて553エラー
-
VBScriptで、ファイルから任意...
-
ASPから既存のexcelブックを開...
-
ASPからJavaScriptへの受け渡し...
-
SFTPなどは使わないホームペー...
おすすめ情報