RAD Studio XE2 + IntraWeb でユーザーにファイルをダウンロードさせる方法

RAD Studio(Delphi) XE2 + IntraWeb(VCL for the Web) でユーザーにファイルをダウンロードさせる方法についてのメモ。

Atozed 社が提供している IntraWeb(VCL for the Web) は、ASP.NET などよりもはるかに昔から RAD 形式で Web アプリケーションを作成できるフレームワークです。

日本ではあまり知名度が無く、情報もほとんど無いのが残念なところでしょうか。

さて、この記事では、IntraWeb を使ってブラウザの先のユーザーに自由にファイルをダウンロードさせる方法についてメモします。

通常の Web 系の技術であれば、ユーザーにファイルをダウンロードさせるには Content-Type などの HTTP Header を設定して HTTP Body としてデータを送る、と言うのが基本ですが、IntraWeb などのフレームワークではどのようにカプセル化されているのかがわからず、結構手間取りました。

結論としては、IWApplication のインスタンスである WebApplication オブジェクトが持っている SendFile()/SendStream() メソッドを利用すればできました。

PDF ファイルをダウンロードする場合であれば、次の様になります。

WebApplication.SendFile('path/to/file.pdf', false, 'application/pdf', 'dispatch.pdf');

こちらは、ローカルに保存されている PDF ファイルを、”dispatch.pdf”と言う名前でダウンロードさせます。

WebApplication.SendStream(<stream .data.of.pdf>, false, 'application/pdf', 'dispatch.pdf');

こちらは、メモリーストリームなどに書き出された PDF ファイルを、”dispatch.pdf”と言う名前でダウンロードさせます。

とても簡単ですね。

え?Webサイトのバックアップ、してないの!?

いざという時には復旧までしてくれる
『ワードプレス外部バックアップサービス』

■3つの特長
・自分でやらなくて良い
・いざという時の復旧付き
・外部サーバーにバックアップ

コメントを残す