struts2文件下载

struts2文件下载不需要链接到另一个jsp页面,故只需要一个超链接和一个处理文件下载的action类即可。

下面来看struts2文件下载的具体步骤和细节。

这是一个jsp页面的超链接,负责链接到服务器的文件流。

<a href="testDownload">Down Load</a>

在看action类的内容前有必要了解一下struts2文件下载的几个相关的文件属性

  • contentType     【结果类型】 默认值是  default = text/plain
  • contentLength  下载的文件的长度

  • contentDisposition 设定Content-Disposition响应头,该响应头指定接应是一个文件下载类型,一般取值为 attachment;filename="document.pdf".

  • inputName 指定文件输入流的getter定义的那个属性的名字,默认为 inputStream

  • bufferSize 缓存大小,默认为  1024

  • allowCaching 是否允许使用缓存 默认为true  

  • contentCharSet 指定下载的字符集 

这几个属性都可以在struts.xml中定义或者在action里面以get的方法提供。

下面来看action类的内容。

package com.mxf.action;

import java.io.FileInputStream;
import java.io.InputStream;

import javax.servlet.ServletContext;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class Download extends ActionSupport {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private String contentType;
	private long contentLength;
	private String contentDisposition ;
	private InputStream inputStream;
	
	
	public String getContentType() {
		return contentType;
	}


	public void setContentType(String contentType) {
		this.contentType = contentType;
	}


	public long getContentLength() {
		return contentLength;
	}


	public void setContentLength(long contentLength) {
		this.contentLength = contentLength;
	}


	public String getContentDisposition() {
		return contentDisposition;
	}


	public void setContentDisposition(String contentDisposition) {
		this.contentDisposition = contentDisposition;
	}


	public InputStream getInputStream() {
		return inputStream;
	}


	public void setInputStream(InputStream inputStream) {
		this.inputStream = inputStream;
	}


	@Override
	public String execute() throws Exception {
		contentType = "text/html";//指定接收的文件类型为html
		contentDisposition = "attachment;filename=iterator.html";
		ServletContext servletContext = ServletActionContext.getServletContext();
		String fileName = servletContext.getRealPath("/files/iterator.html");//项目webcontent下files文件夹下的<span style="font-family: Arial, Helvetica, sans-serif;">iterator.html</span>

		inputStream = new FileInputStream(fileName);
		contentLength = inputStream.available();
		return SUCCESS;
	}

}

上面的action分别声明了这几个属性


<span style="white-space:pre">	</span>private String contentType;
	private long contentLength;
	private String contentDisposition ;
	private InputStream inputStream;

这表示动态生成


下面来看struts.xml的配置

<span style="white-space:pre">		</span><action name="testDownload" class="com.mxf.action.Download">
			<result<span style="background-color: rgb(255, 0, 0);"> type="stream"</span>>
				<param name="bufferSize">2048</param>
			</result>
		</action>

标红的地方必须注意:该处的type值必须为stream,不然没办法struts2框架的文件下载功能

Pavtube MXF MultiMixer 1.2 中文注册版,全面的工具集 MXF 格式转换器,MXF 格式多音轨/通道保护者和混频器。它能够导入和导出 MXF 格式的视频文件,多音轨/频道以及混合多音轨/频道合并为一个。它还有助于转换的MXF视频文件通过iDevices支持的视频格式,Android设备,Windows设备,高清媒体播放器,游戏机,以及输出格式自由编辑在诸如的Avid Media Composer的,索尼拉斯维加斯和Adobe premiere编辑程序,等等。 内置的视频编辑器提供丰富的编辑功能让您通过调整得到源MXF格式的视频短片,切断影响视觉上的享受,通过裁剪,插入字幕的黑网吧,加入特殊的视频效果,等等。 Pavtube MXF MultiMixer 主要特点: 一个全功能强大的转换工具 1,输出可观的视频格式 Pavtube MXF多仓能够将MXF格式视频格式,如MKV,MP4,AVI,MPEG,WMV,FLV,SWF,F4V,MOV,VOB等。 在多台设备2免费播放 由于能够输出各种视频格式,转换后的MXF格式的视频都可以用iDevices,Android设备,Windows设备,高清媒体播放器,游戏机等设备的支持 3,转码MXF编辑程序 这个程序可以帮助转码的MXF为可编辑的格式编辑软件(如:AVID媒体作曲家时,Adobe Premiere,索尼拉斯维加斯)。 维护和混合MXF格式多音轨/频道 1,多轨道保存 进口多轨MXF格式和输出的MKV/ MP4/ MOV格式,多音轨/频道广播,进一步的编辑和播放。 2,混合MXF格式多音轨/频道 可以混合使用MXF多音轨/声道音频转换为一个或出口多音轨格式的视频前,保持多音轨的信息。 体验神奇的3D效果 1,2D到3D转换 2D转换为MXF格式的3D视频格式MKV/ MP4/ MOV/ WMV/ AVI侧面并排,顶底,或浮雕3D效果。 2,3D到3D转换 享受3D MXF格式的视频文件,与真正的影院娱乐的家庭影院。 调整设置个性化的MXF 1,自定义MXF格式的视频 调整参数,如视频大小,比特率和帧速率的MXF格式的视频文件,以获得更好的视觉和音频效果 2,拆分MXF格式的视频 分割的MXF视频转换成按剪辑数量,持续时间和文件大小的几个片段。 Pavtube MXF MultiMixer截图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值