`
wfwkiss
  • 浏览: 127131 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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.
//////////////////////////////////////////////////////////////////////

下为Struts2 的代码
		<action name="generalExcelAction" class="generalExcelAction">
			<result name="success" type="stream">
				<param name="contentType">application/vnd.ms-excel</param>
				<param name="contentDisposition">attachment;filename="AllStudent.xls"</param>
				<param name="inputName">downloadFile</param>
			</result>
		</action>

attachment:弹出 是否下载的询问.默认为inline
<param name="contentType">application/vnd.ms-excel</param>去
C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf 的 web.xml 文件有所有文件下载时用的饿类型
分享到:
评论

相关推荐

    ContentDisposition.rar_Java编程_Java_

    在Java编程领域,ContentDisposition是JavaMail API中的一个重要概念,主要与邮件附件处理相关。它扩展了ParametersHeader接口,并实现了javax.sip.header包中的接口,这使得ContentDisposition能够处理SIP(Session...

    Struts Updownload 源码

    Struts Updownload 源码 给出其中一个Action 包中含有整个框架的源码 ... import java.io.... public void setContentDisposition(String contentDisposition) { this.contentDisposition = fileName; } }

    Struts 2中实现文件下载

    `stream`类型的结果用于处理文件下载,它可以设置文件的`contentType`、`inputName`(即Action中获取输入流的属性名称)、`contentDisposition`(定义如何在浏览器中显示文件,如作为附件下载)以及`bufferSize`(每次...

    struts2 中文文件名文件下载

    ContentDisposition contentDisposition = ContentDisposition.type("attachment") .filename(fileName).build(); response.setHeader("Content-Disposition", contentDisposition.toString()); // 读取文件内容...

    struts2.2.1文件下载及中文乱码问题解决.pdf

    `contentDisposition`属性则决定了文件下载的方式,可以是`inline`(内联)或`attachment`(附件)。`attachment`通常会触发浏览器的文件保存对话框,让用户选择保存位置;而`inline`则会尝试在浏览器窗口中直接打开...

    c#数据采集

    var contentDisposition = response.Content.Headers.ContentDisposition; if (contentDisposition != null && !string.IsNullOrEmpty(contentDisposition.FileName)) { var widthAndHeight = ...

    action下载

    通过上述详细的分析和代码示例,我们可以看到在Struts2框架下实现文件下载,尤其是解决中文文件名乱码问题,需要细致地配置`contentType`、`inputName`、`contentDisposition`和`bufferSize`等属性,并且在Action类...

    content-disposition:创建并解析HTTP Content-Disposition标头

    内容倾向 创建并解析HTTP Content-Disposition标头安装$ npm install content-dispositionAPI var contentDisposition = require ( 'content-disposition' )contentDisposition(文件名,选项) 使用给定的文件名...

    C# winform上传照片到服务器

    fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "newFileName.jpg" // 修改照片名字的地方 }; content.Add(fileContent); var response = await ...

    Struts2中实现文件下载(修正中文问题).pdf

    在`contentDisposition`中使用`${downloadFileName}`引用Action中的方法,Struts2会自动调用这个方法获取编码后的文件名。 在`FileDownloadAction2`类中,`getDownloadFileName()`方法需要将中文文件名转换为符合...

    java文件下载

    通过在`contentDisposition`参数中使用`${downloadFileName}`,Struts2会调用`action`类中的`getDownloadFileName()`方法来获取编码后的文件名,确保了中文字符在下载过程中的正确显示。 3. **下载现有文件**:第三...

    基于servlet的简易文件上传(带进度条)

    return contentDisposition.substring(contentDisposition.indexOf('=') + 1).trim().replace("\"", ""); } } return null; } } ``` 请注意,这只是一个基本示例,实际项目中还需要考虑错误处理、文件大小限制...

    struts2实现文件下载

    我们可以通过在`contentDisposition`中使用`${downloadFileName}`变量,并在对应的Action类中定义`getDownloadFileName()`方法来返回经过编码的文件名。 例如,在`struts.xml`中配置如下: ```xml ...

    strus2文件上传下载

    同时,需要设置两个重要的属性:`contentType`和`contentDisposition`。 `contentType`属性定义了文件的MIME类型,例如`application/octet-stream`,这告诉浏览器如何处理响应的数据。`charset`属性用于指定字符...

    POP3读取email,保存附件到本地

    string filePath = Path.Combine(@"C:\Attachments", part.ContentDisposition.FileName); using (FileStream fileStream = File.Create(filePath)) { part.Content.DecodeTo(fileStream); } } } } ``` 6....

    Webapi 文件上传

    var contentDisposition = file.Headers.ContentDisposition; var fileSize = file.Headers.ContentLength.Value; if (fileSize &gt; 1024 * 1024 * 5) // 限制文件大小为5MB { return Request....

    C#.NET文件下载经典方法.

    result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment"); result.Content.Headers.ContentDisposition.FileName = "filename.ext"; return result; } ``` 三、使用...

    struts2实现文件下载及中文名字转换解决方案

    通过在`contentDisposition`参数中使用`${downloadFileName}`,我们可以动态地获取经过编码的文件名。Action类中需要有一个名为`getDownloadFileName()`的方法,该方法负责对中文文件名进行编码,以确保在不同操作...

    elm.txt

    - **示例**:在本例中,`contentDisposition` 变量存储了邮件头部的 `Content-Disposition` 字段值,用于指示附件的处理方式。 #### 3.2 Content-ID(内容标识符) - **定义**:一个唯一标识符,用来在 MIME 消息...

Global site tag (gtag.js) - Google Analytics