PDFをブラウザ表示ではなくファイルダウンロードさせたい場合、PDFを作成する機能=PDFプロシージャを実装し、ダウンロードさせるための記述を追加する事により実現しました。ダウンロードさせたいファイルがサーバー上に既にある場合はどうしたらよいでしょうか?
答えはしごく簡単です。プロシージャ(帳票ではない)でHttpResponse拡張データ型を使用します。つまりダウンロードさせるための指定だけでよいのです。
例) サーバー上のExcelファイルをダウンロードさせる場合
//ファイルのContent-Typeを指定
&HttpResponse.AddHeader("Content-Type", "application/vnd.ms-excel")
//クライアントPC上で保存させたいファイル名を指定
&HttpResponse.AddHeader("Content-Disposition", "attachment;filename=test.xls")
//サーバー上のファイルパス
&HttpResponse.AddFile("c:\temp\test.xls")
あとはプロシージャオブジェクトのプロパティを以下のように設定します。
Main program | True |
Call protocol | HTTP |
続いてプロシージャを呼び出す為のWebパネルを作成します。
画面はダウンロード用のボタンのみ配置しています。
EnterイベントでプロシージャのCallを記述します。
ビルド・実行します。
実行ボタンをクリックすると、ファイルダウンロードのダイアログが表示されます。
0 件のコメント:
コメントを投稿