- PR -

PDFが別画面に表示されてしまう

投稿者投稿内容
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2006-08-01 09:04
こんにちは。お世話になります。

PDFファイルをダウンロードするサーブレットを作っています。
ブラウザのリンクをクリックすると
そのウィンドウにPDFを表示する
ということをしようとしていますが下記の現象が起きています。
・ブラウザのアドレスバーにはダウンロードサーブレットのURLが表示される
・AcrbatReaderが別ウィンドウで開きPDFファイルが表示される。

ダウンロードサーブレットのソースは次の通りです。

コード:
public class DownLoadServlet extends HttpServlet {


public void doPost(HttpServletRequest request, HttpServletResponse response) {
this.doService(request, response);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) {
this.doService(request, response);
}

public void doService(HttpServletRequest request, HttpServletResponse response) {

String fileName = "d:\files\aaa.pdf";

InputStream inputStream = null;
try {
inputStream = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
return;
}

response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=" + fileName);

int size;
byte[] buffer = new byte[1024];
try {
while ((size = inputStream.read(buffer)) != -1) {
response.getOutputStream().write(buffer, 0, size);
response.getOutputStream().flush();
}
} catch (IOException e) {
e.printStackTrace();
return;
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e2) {
e.printStackTrace();
return;
}
}
}
}
}



何かお分かりになりましたら
ご教授よろしくお願いいたします。


[ メッセージ編集済み 編集者: あすか 編集日時 2006-08-01 09:05 ]
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2006-08-01 09:42
リンクの target属性値、Acrobat Readerの設定によってはサーブレットに関係なく別ウィンドウで開いてしまいますが、そのあたりは大丈夫ですか?
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2006-08-01 10:08
リンクは
<meta http-equiv="Refresh" content="0;URL=./downloadservlet">
で行っていますので
別ターゲットに、
ということはありません。

引用:
Acrobat Readerの設定



とは何でしょうか。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2006-08-01 11:51
編集=>インターネット=>PDFをブラウザに表示
という項目があります。
AcrobatReaderのバージョンによっても動きは違います。
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2006-08-01 13:53
AcrobatReaderにて環境を確認したところ
 編集=>インターネット=>PDFをブラウザに表示
にチェックが入っておりました。
ためしにチェックを入れたりはずしたりして何度か確認しましたが
どちらにしても変化がありませんでした。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2006-08-01 14:25
クライアントOSの種類、バージョン、パッチの適用
ブラウザの種類、バージョン、パッチの適用
によっても動作は微妙に異なるとおもいます。
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2006-08-01 14:37
クライアントのOS
 Windows XP Professional sp2(MicrosoftUpdateフル適用)
Acrobat Reader
 7.0.8(パッチフル適用)
という状態です。

動作が微妙に異なるということは
AcrobatReaderに不具合があるということなのでしょうか。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2006-08-01 15:49
バグか仕様かわからないですが、違うということです。
クライアント側の環境は一般的に様々なので、サーバサイドでこう処理すれば
クライアントOS、ブラウザを問わず、こう動きます。
といった指針があれば私も知りたいとおもっています。
私もPDFやXLSをストリームで送って、期待した動作と異なるので困っています。


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