質問

Tomcatを実行しており、PDFファイルをその場で生成しています。事前にファイルサイズがないので、サーバー上のファイルに直接リンクすることはできません。そのため、出力を直接送信します。

response.setContentType("application/force-download");
OutputStream o = response.getOutputStream();

そして、このOutputStreamに直接出力します。

唯一の問題は、受信者がファイルサイズを取得できないため、ダウンロードにかかる時間を知らないことです。応答にファイルの大きさを伝える方法はありますか?

編集   ファイルサイズは知っていますが、STREAMにファイルの大きさを伝えることはできません。

役に立ちましたか?

解決

応答オブジェクトには、 setContentLength メソッド:

// Assumes response is a ServletResponse
response.setContentLength(sizeHere);

他のヒント

PDFバイトストリームをファイルまたはバイト配列にシリアル化し、サイズを計算し、サイズを設定して出力ストリームに書き込みます。

あなたは自分で質問に答えていると思います: 見積もり: 事前にファイルサイズがないため、出力を直接送信します。

サイズがない場合は送信できません。...

PDFファイルを一時ファイルシステム、またはRAMベースのファイルシステムまたはメモリマップファイルに即座に生成しない理由。その後、ファイルサイズを取得できます。

response.setContentType(" application / force-download"); response.setContentLength(sizeHere); OutputStream o = response.getOutputStream();

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top