- PR -

バイナリ・データの出力のファイル名について

1
投稿者投稿内容
charcoal
会議室デビュー日: 2003/06/05
投稿数: 4
投稿日時: 2003-06-06 00:01
参照元のURLに公開されているような方法でダウンロードさせる場合に、
NetScape7でダウンロードしようとするとファイル名のお尻にサーブレット名が
ついてしまいます。
対処方法はありますでしょうか?
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2003-06-07 13:13
サーブレットの応答を静的コンテンツの様なファイル名で公開したいということでしょうか? xxxx.html みたいな?

サーブレットコンテナにもよるかも知れませんが、Tomcat 3だと web.xmlで名称が登録できたと思います。
コード:

<servlet-name>
potal.html
</servlet-name>
<servlet-class>
pkg.PotalServlet
</servlet-class>


※Tomcat 4ではちがうかも。
※Apacheと連携のとき、何か注意があるかも。

スレッド名がバイナリデータ…なので、xxxx.gifとかを例にした方が良かったでしょうか。
編集したら BBコード化けたので、再編集しました。

[ メッセージ編集済み 編集者: Kissinger 編集日時 2003-06-07 15:02 ]
charcoal
会議室デビュー日: 2003/06/05
投稿数: 4
投稿日時: 2003-06-07 15:05
いえ、動的なファイル名のCSVファイルなんです。
Aタグでリンクすると、ブラウザでCSVファイルを開いてしまうので、
Formのbuttonでサーブレットを呼んでダウンロードさせようと思っていたのです。
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2003-06-07 23:55
なるほど。
Formの場合でも、サーブレット名(登録名)の設定は有効ではないでしょうか。

Netscape7とクライアント側を限定しているようですが、もし設定を変えられるなら、
.csv を認識するプラグインを外してしまえば、Aタグリンクのクリックでも
ファイルを開くか、保存するかどうかのダイヤログが開かれるのではないかと思います。

もう一つ、もし右ボタンで「リンクターゲットに名前を付けて保存」操作が
許されるなら、Aタグでも行けるでしょう。

いづれにしても、コンテンツ生成だけでなくファイル名も動的にするなら、
Formのページまたは Aタグを含むページを送る時点で名称を決めておく必要が
あるのではないでしょうか。
charcoal
会議室デビュー日: 2003/06/05
投稿数: 4
投稿日時: 2003-06-08 00:35
最初のServletでContent-Disposition使ってダウンロードさせる方法ならば、
必ず保存するダイアログを出すことが出来るのです。
しかし、NetScape7だけはファイル名がおかしくなるので・・・
対応するクライアントはIEとNetscape両方なので、すべてで同じ動作をさせないといけません。
ページを表示する際には、名称は決まっています。
対応方法がなければAタグで逃げて運用でカバーする方法をとるしかないので・・・
amnaky
ベテラン
会議室デビュー日: 2002/09/13
投稿数: 75
お住まい・勤務地: 東京
投稿日時: 2003-06-08 11:22
http://java-house.jp/ml/archive/j-h-b/047672.html
これと似てますね。
3つ目のレスで触れられています。

でも結局解決してないんですが。

ブラウザ特有の動きがあるのか・・・。
charcoal
会議室デビュー日: 2003/06/05
投稿数: 4
投稿日時: 2003-06-08 14:57
http://bugzilla.mozilla.gr.jp/show_bug.cgi?id=2133

http://bugzilla.mozilla.gr.jp/show_bug.cgi?id=2069
mozillaでもにたようなのがありました・・・
httpd.confのMIMEの設定でもやってみます。
1

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