文件下载概述
在某些应用程序里, 可能需要动态地把一个文件发送到用户的浏览器中, 而这个文件的名字和存放位置在编程时是无法预知的
Stream 结果类型
Struts 专门为文件下载提供了一种 Stream 结果类型. 在使用一个 Stream 结果时, 不必准备一个 JSP 页面.
Stream 结果类型可以设置如下参数:
contentType:被下载的文件的 MIME 类型。默认值为 text/plain
contentLength:被下载的文件的大小,以字节为单位
contentDisposition: 可以设置下载文件名的ContentDispositon 响应头,默认值为 inline,通常设置为如下格式: attachment;filename="document.pdf".
inputName:Action 中提供的文件的输入流。默认值为 inputStream
bufferSize:文件下载时缓冲区的大小。默认值为 1024
allowCaching :文件下载时是否允许使用缓存。默认值为 true
contentCharSet:文件下载时的字符编码。
Stream 结果类型的参数可以在 Action 以属性的方式覆盖
小结
2. 文件的下载:
1). Struts2 中使用 type="stream" 的 result 进行下载即可
2). 具体使用细节参看 struts-2.3.15.3-all/struts-2.3.15.3/docs/WW/docs/stream-result.html
3). 可以为 stream 的 result 设定如下参数
contentType: 结果类型
contentLength: 下载的文件的长度
contentDisposition: 设定 Content-Dispositoin 响应头. 该响应头指定接应是一个文件下载类型, 一般取值为 attachment;filename="document.pdf".
inputName: 指定文件输入流的 getter 定义的那个属性的名字. 默认为 inputStream
bufferSize: 缓存的大小. 默认为 1024
allowCaching: 是否允许使用缓存
contentCharSet: 指定下载的字符集
4). 以上参数可以在 Action 中以 getter 方法的方式提供!