- PR -

ダウンロード時、ダイアログの「開く」を押すとファイルの内容がブラウザに表示されてしまう。

1
投稿者投稿内容
迷い猫
常連さん
会議室デビュー日: 2004/08/13
投稿数: 30
投稿日時: 2004-10-05 22:27
こんばんわ。本日2回目の投稿です;

みなさんまた宜しくお願い致します。

ダウンロードする際に、ダイアログが表示され、
その、「開く」ボタンを押下すると、もう一度ダイアログが
表示されます。2回目に「開く」を押下すると、
ファイルがきちんと開きます。
以上が、@のやり方です。

Aのやり方でやると、
ダイアログが表示され、「開く」を押下すると、
ブラウザにファイルの内容が表示されます。

実際には、@とAが足されたような形、
ダイアログの表示は1度で、
ファイルはブラウザではなくExcelならExcelファイルとして表示
したいのですが、そういうことはできますでしょうか?

皆さんご教授のほど宜しくお願い致します。




@
response.setContentType( "application/octet-stream-dummy" );
response.setHeader("Content-Disposition","attachment; filename=\\"" + fileName + "");

DataOutputStream dos = new DataOutputStream( response.getOutputStream( ) );
FileInputStream fis = new FileInputStream(file );
try {

byte[ ] buffer = new byte[ 1024 ];
int readbyte = 0;

while( true ) {
readbyte = fis.read( buffer );
if( readbyte == -1 ) {
break;
}
dos.write( buffer, 0, readbyte );
dos.flush( );
}

} catch( Exception e ) {
throw e;

}finally{
try{
if(dos != null) dos.close();
if(fis != null) fis.close();
}catch( Exception e){}
}

A「@」1部を除き同じ

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

↓下記に変更
response.setHeader("Content-Disposition","inline; filename=\\"" + fileName + "");

 

[ メッセージ編集済み 編集者: 迷い猫 編集日時 2004-10-06 14:16 ]
aki
常連さん
会議室デビュー日: 2004/09/17
投稿数: 23
お住まい・勤務地: 東京・神奈川
投稿日時: 2004-10-06 14:30
ダウンロードを行うServletにサブミットする際のtargetの指定はどうなっていますか?
_parentやフレーム名に変えることで対応出来ると思います。
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2004-10-06 15:08
こちらが参考になるのでは。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5606&forum=12&8
1

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