- PR -

Java Webシステムのファイル転送方法

1
投稿者投稿内容
HOTA
会議室デビュー日: 2002/10/25
投稿数: 3
投稿日時: 2002-10-25 18:43
現在Webシステムを開発していますが、下記機能の実現方法が見つからず、
どのような対応をすべきか悩んでいます。
是非、アイデアを下さい。また、参考となるWebページなどありますでしょうか?

もしかしたら、下記内容の実現は無理なのでしょうか?


Webサーバ :Windows2000 Server,Tomcat,IIS
クライアント:Windows2000 Professional


【実現したい機能】
)〜)の流れで処理をしたい。

@自端末(クライアント)のWebブラウザ画面
)DBの検索条件を指定する。
)自端末へファイル保存するパスを指定する。
)実行ボタンを押下する。

AWebサーバ
))で指定した条件で、DB検索を行い該当するデータを取得する。
))で取得したデータで、Webサーバ内にファイルを作成する。
))のファイル作成後に、)で指定したクライアント端末のパスに
  ファイルを直接アップロードする。


[ メッセージ編集済み 編集者: HOTA 編集日時 2002-10-25 18:44 ]
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2002-10-25 19:30
それを実現するための技術がどれだけ危険なことかを考えたら
できると思うのが怖くなりそうですが。

クライアント側で

)条件指定
)実行ボタン

としておいて、サーバ側で

)検索
)ファイル作成(これはなくてもよい)

さらにクライアント側で

)ファイル選択ダイアログでダウンロード先を指定

といったような流れなら良くあると思いますが、これではだめでしょうか?
あとは、アプレットを利用して、セキュリティポリシーを設定してやるくらい。
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-10-25 22:13
Windows Update のようなヘルパーアプリケーションを作りましょう。
どんなカラクリなのかは知りませんが。
まぁ、ActiveX とかでセキュアをがんがん筒抜けにさせりゃできなくはないでしょう。
一般的な HTTP / ブラウザ / サーバのみでは無理です。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2002-10-25 22:54
>))のファイル作成後に、)で指定したクライアント端末のパスに
>  ファイルを直接アップロードする。

これは、皆さんおっしゃるようになかなか大変なので、

>))で取得したデータで、Webサーバ内にファイルを作成する。

サーバ側でデータを抽出したらクライアントへのレスポンスの頭に、ファイル保存ダイアログを出させるMIME(手元に資料が無いので忘れてしまいました ゴメンなさい)を付けてクライアントに応答して、表示されたファイル保存ダイアログで好きなフォルダを指定すればいいかなーなんて思うんですがどうですかね?。私ならそうするという感じですが。




ジェイ
ベテラン
会議室デビュー日: 2002/10/06
投稿数: 62
投稿日時: 2002-10-26 02:48
私の場合、社内のみのローカルで実装したので、セキュリティーとかは考えずに、
かなりむりやりな感じでやったことがあります。
------------------------------------------------------------------------
res.setContentType("application/octet-stream csv ; charset=Shift_JIS");
     **ファイルの生成**
res.sendRedirect("http://サーバIP/フォルダ/***.csv");
------------------------------------------------------------------------
みたいな感じでCSVファイルをDLできるようにしました。
そして一定時間後に該当ファイルを削除するようにしました。
なんてかなり無理やりですけど・・・
もしかしたら、Ridirectしているので、res.setContentType()の部分は必要ないかも知れませんが。
でも、これで結構希望とおりの実装ができましたよ。ベテランが方々にはアオイな〜とか言われてしまうかもしれませんがね。


[ メッセージ編集済み 編集者: ジェイ 編集日時 2002-10-26 03:00 ]
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2002-10-26 18:20
ジェイさんの言われる方法か、レスポンスに直接書き込むかが一般的ではないでしょうかね。
ただし、それではHOTAさんのやりたいことにはなりません。

やるのならそれなりのリスクがありますし、技術的にも複雑になります。
HOTA
会議室デビュー日: 2002/10/25
投稿数: 3
投稿日時: 2002-10-31 21:47
まりりさん、ショムさん、小僧さん、ジェイさん
回答ありがとうございます。

いろんなやり方があり、とても勉強になりました。

ただ、セキュリティという面で考えたときには、
やはり、

@サーバ側にファイルを作成
Aクライアント側にWeb画面を表示
Bサーバ側に作成したファイルとリンク付けを行い、クリックしてダウンロード先指定→ダウンロード開始
となるような流れで、開発してみます。

アイデア、ありがとうございました。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2002-11-01 00:06
既に方針も決められているようなのでお節介かもしれませんが、サーバ側にファイルを作成してそれにリンクを貼ってダウンロードさせるのは、セキュリティ面で良いとは思えないんですが。サーバ上のファイルをリンクでアクセスできる状態で保存しておくということは、ダウンロードを終えるのに十分な時間的余裕を持たせてから、何らかの方法でファイルを削除するということですから、第3者にそのファイルをアクセスされてしまう可能性があると思うんです、URL直接指定とかで。どんなに複雑なファイル名を付けられたとしても、実態としてデータファイルを作ってしまうのはトラブルの元と思います。でも、サーバ内部のファイルを開いて、その内容をそのままクライアントに出力するようなプログラムを介して、URL指定では絶対にアクセスできないディレクトリ内のファイルを扱うとかする方法もありますね。







1

スキルアップ/キャリアアップ(JOB@IT)