天天看點

ie8,contentDisposition

在servlet中,HttpServletResponse有一個表明響應所包含内容類型的參數。對PDF檔案而言,内容類型是application/pdf。如果servlet沒有設定類型,web浏覽器很難決定如何處理這個檔案。

PDFServlet用下邊的代碼設定内容類型:

resp.setContentType("application/pdf");

Content-disposition

Content-disposition頭提供給浏覽器确定HTTP響應内容的資訊。當浏覽器讀到這些頭資訊後,它能确定:

  • HTTP響應包含一個檔案;
  • 包含在響應中的檔案名;
  • 該檔案是顯示在浏覽器主視窗中還是要用外部的應用檢視;
  • RFC 2183中有對Content-disposition頭完整的解釋。

    通過合适地設定Content-disposition的值,servlet能訓示浏覽器是“内嵌”顯示檔案還是把它當作附件處理。

    例1.内嵌顯示一個檔案

    Content-disposition: inline; filename=foobar.pdf

    例2.往response裡附加一個檔案

    Content-disposition: attachment; filename=foobar.pdf

    在ie8中,contentDisposition最好指派

    ///from http://www.faqs.org/rfcs/rfc2183.html//

    2.1  The Inline Disposition Type

       A bodypart should be marked `inline' if it is intended to be

       displayed automatically upon display of the message.  Inline

       bodyparts should be presented in the order in which they occur,

       subject to the normal semantics of multipart messages.

    2.2  The Attachment Disposition Type

       Bodyparts can be designated `attachment' to indicate that they are

       separate from the main body of the mail message, and that their

       display should not be automatic, but contingent upon some further

       action of the user.  The MUA might instead present the user of a

       bitmap terminal with an iconic representation of the attachments, or,

       on character terminals, with a list of attachments from which the

       user could select for viewing or storage.

    //