0

URLが blah.do?params=xyz のようなサーブレットがあります

サーブレットでは、私のコードは次のようになります

ServletOutputStream out = response.getOutputStream();
request.setAttribute("Content-Type","application/pdf");
request.setAttribute("Content-Disposition","attachment;filename=test.pdf");
byte[] bytes = SystemServer.getFileContents(fileId).getBytes();      
request.setAttribute("Content-Length","" + bytes.length);
out.write(bytes, 0, bytes.length);
out.flush();

私が使う

window.open(url,"my file","someparams");

しかし、クロムは純粋なテキストとしてウィンドウを開き、ソースを表示すると、出力されたすべてが

%PDF-1.4 %áéëÓ 2 0 obj  ..... all contents....%%EOF

では、どうすれば強制的にPDFとして表示できますか

奇妙なことに、同じコードを使用して画像をブラウザに戻しましたが、正常に動作しました

4

2 に答える 2

1

これらの属性は、リクエストではなくレスポンスオブジェクトに設定する必要があります。

于 2012-06-14T18:26:00.767 に答える
0

実際に応答に設定する必要がある要求属性として、いくつかのものを設定しています。

response.setContentType("application/pdf");
response.setContentLength(bytes.length);
response.addHeader("Content-Disposition","attachment;filename=test.pdf");
于 2012-06-14T18:30:02.580 に答える