0

Java サーブレットで pdf を作成しています。作成した pdf を開くと、サーブレットの後にその pdf の名前が間違って付けられます。これが私のコードです:

     response.setHeader(contentDisposition, "inline; filename=TemporaryVerification.pdf");

     try {

         reader = new PdfReader(CreateStuVerification.class.getResource("/resource/" +     tempFile));
         stamp = new PdfStamper(reader, response.getOutputStream());

だから私は私のpdfに「TemporaryVerification.pdf」という名前を付けたいのですが、それは「CreateStuVerification.pdf」という名前です(これは私のサーブレットの名前です)。これがなぜなのか、おそらくそれを修正する方法を知っている人はいますか?

編集:インラインpdfとして保持する必要があります。添付ファイルとして試してみたところ、正しく名前が付けられました。

4

1 に答える 1

1

この動作は、IE ブラウザーに固有のものです。ダウンロードしたリソースのデフォルト名として URI パスの最後の部分を使用します。より健全なブラウザーは、これにヘッダーのfilename属性を適切に使用します。Content-Disposition

次のようなパスパターンでサーブレットを再マップし/pdf/*、目的のファイル名をURLに直接追加して、PDFを返すはずです。

<a href="pdf/TemporaryVerification.pdf">

必要に応じて、次のようにサーブレットのファイル名部分を取得できます。

String filename = request.getPathInfo().substring(1); // TemporaryVerification.pdf
// ...
于 2012-11-15T17:27:48.507 に答える