[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends:00036] Re: JAVA でクライアントのディスクにファイル書き込みは出来るか
えんどうです。
> 1.クライアントのWeb画面の「グラフ作成」ボタンを押す
> 2.UNIX上にあるプログラムを呼び出す
> 3.呼び出されたプログラムがDBからデータを読み込み、
> X-Yグラフ用のCSVデータを作成する
> 4.作成されたCSVデータをクライアント機に転送する
> 5.転送されたデータをクライアント機のローカルディスクにセーブする
1〜5までは CGI でも Java Servlet でも書けますよね。
HTTPサーバーがいつもやっている処理です。
4のときに HTTP ヘッダーの Content-Type を application/octet-stream とか、
application/vnd.ms-excel とかにセットしてやれば良いです。
この際、ファイル保存ダイアログは必ず表示されます。
ファイル保存ダイアログの表示を抑止して、ユーザーが気づかないうちに
ファイルを保存することはセキュリティ上出来なくしてあります。
これができてしまうと、ユーザーが知らないうちに、ウイルスでもなんでも
保存できてしまうことになります。
> 6.エクセルを自動起動させ、5で得たデータのX-Yグラフを自動作成する
これをやるにはセキュリティ的に危険な操作が必要です。
通常Webからこういうことは行いません。
Web側からの操作で、クライアント側アプリケーションが勝手に動いてしまった
ら危険だからです。
グラフを表示すれば良いだけなら、
サーバー側で画像を生成してその画像を表示させれば良いのでは。
アプレットはダウンロード元サーバーと通信できるので、
「数値データをサーバーから受け取りグラフを表示するアプレット」を
使う方法も考えられます。
> ローカルディスクにセーブするところなのですが、Javaのアプレットやプログラムで
> このようなことは可能なのでしょうか
アプレットは通常、ローカル資源(ファイル、プリンターなど)に
アクセスできないので無理です。
上述のように Servlet なら可能ですが、ファイル保存ダイアログを回避するこ
とはできません。
(たとえ出来たとしても、やるべきでない)
--
ENDO Yasuyuki <yasuyuki@xxxxxxxxxxxx>
http://www.ss.iij4u.or.jp/~eyasuyuk/ (Personal/Japanese Only)
http://www.javaopen.org/jfriends/ (Japanese Only)