- PR -

ダウンロード後別フレームから画面が切り替わりません

1
投稿者投稿内容
みき
会議室デビュー日: 2002/04/12
投稿数: 1
投稿日時: 2002-04-12 20:18
tomcat4.0、JDK1.3で動かしています。

JSPは二つのフレームからなっていて
右フレームのJSP上のリンクをクリックすると
<a href = "fileservlet?filename=<%= filnam %>" ><%= filnam() %></a>
とfileservletサーブレットにパラメーターを渡し、以下の処理をservletですると
filnamで指定した場所からファイルを取ってきて
ブラウザのダウンロード画面が表示され指定の場所に保存できるのですが、

ダウンロード後
case1 左フレームのメニューをクリック → 右フレームのJSPは変化しない
case2 右フレームのリンクやsubmitボタンをクリック → 
右フレームのJSPは変化して、その後は左フレームからも右フレームのJSPを
変化させる事ができる
case3 ダウンロード時に一度開くを選択してから保存して終了してから左フレームの
メニューをクリック → 右フレームのJSPは変化する 

となり、case1で右フレームのJSPを変えたいのですが、
一体何が原因で起こっているのかも、解決策もわかりません。
コンソールで確認すると変えたいJSP自体は最後まで作られているのですが
表示のみ変化していません。

しかもこれが起こるのはIEのみで(テストバージョン5.5,6.0)、
NSではcase1でも正常に左フレームのメニューから右フレームのJSPを変えることができます。

どなたかご存知の方がいましたら教えてください。
既に数日調べていますがお手上げです。
よろしくお願いします。

------サーブレットのコード------------------

response.setContentType("application/octet-stream; charset=\"x-sjis\"");

objName = new String(getFileNameOnly(FileName).getBytes("ISO-8859-1"));

UniFileName = new String(FileName.getBytes("ISO-8859-1"));

response.setHeader("Content-Disposition", "attachment;filename=\"" + objName + "\"");

out = new DataOutputStream(response.getOutputStream());

in = new FileInputStream(UniFileName);

byte [] buffer = new byte[4096];

while ((readbyte = in.read(buffer)) != -1 )
{
out.write(buffer,0,readbyte);
}
in.close();
out.close();

※getFileNameOnlyでファイル名のみを取り出しています。
 FileNameはフルパスです

うら
会議室デビュー日: 2001/11/23
投稿数: 2
投稿日時: 2002-08-21 04:02
自分も同じ目にあったことがあります。
WebLogicServer6.1+Java1.3でした。
結局のところ、
別Windowを立ち上げ、そのウィンドウからDLするようにしました。
これであれば問題なく動作します。
なぜなのかがいまだにわかりません
回避策となるかどうかはわかりませんが、ご参考までに。
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-08-21 11:44

まぁ、バグっぽいのは MSDN ぐらいは検索してみましょうね。
http://support.microsoft.com/default.aspx?scid=http://www.microsoft.com/japan/support/kb/articles/JP418/1/26.asp


回避策になるかはわかりませんが、
/download/* を fileservlet に処理させるようにして、
/download/<filename> という URL で fileservlet?filename=<filename> と
同等の効果が得られるようにしてみてはいかがでしょう。
# Content-Type より拡張子のほうを優先して内容を見るあたりが怪しいかなと。
1

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