2013年4月1日月曜日

サーバー上のファイルをダウンロードさせる方法

これは以前書きました「PDFをダウンロードさせる方法」の応用編です。

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 programTrue
Call protocolHTTP
(帳票を作成するわけではないのでOutput_fileルールは必要ありません)



続いてプロシージャを呼び出す為のWebパネルを作成します。
画面はダウンロード用のボタンのみ配置しています。




EnterイベントでプロシージャのCallを記述します。









ビルド・実行します。

実行ボタンをクリックすると、ファイルダウンロードのダイアログが表示されます。




0 件のコメント:

コメントを投稿

2018 - 新年のご挨拶

あけましておめでとうございます。 旧年中は大変お世話になりました。今年もよろしくお願いいたします。 毎年後半になるとブログの更新が滞っている状況が続いています。なんとか今年は続けようと思っていますが、既に年内の予定が詰まっていまして今年も多忙な一年となりそうです。 それ...