struts2文件下载

其实struts2的文件下载很简单...
<action name="attachmentDownloadAction"class="attachmentDownloadAction">
<result name="success" type="stream">
<param name="contentType">text/plain,application/octet-stream</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
</result>
</action>
----------------------------------------------------------------
contentType:指定被下载文件的文件类型。 application/octet-stream 默认值,可以下载所有类型
inputName:指定被下载文件的入口输入流, 和DownloadAction中的getInputStream()对应,主要是获得实际资源文件====一定要对应。
contentDisposition:指定下载的文件名,一般和文件名一致,但是要注意中文件名保存时乱码问题,解决办法就是进行编码处理
如:<param name="contentDisposition">attachment;filename="${fileName}"</param> 要求DownloadAction中的getFile()返回的文件名编码方式为

ISO8859-1,所以要进行下面处理:
public String getFile() {
String fileName= "";
try {
fileName = new String(file.getBytes(),"ISO8859-1"); //把file转换成ISO8859-1编码格式
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return fileName;
}


备注2
<result name="success" type="stream"> 要注意的是result的type类型要为:stream
--------------------------------------------------------
public class AttachmentDownloadAction extends ActionSupport{


private String fileName;
private String filePath;
public String execute() throws Exception {
return Action.SUCCESS;
}
public InputStream getInputStream() throws Exception {
fileName = new String(fileName.getBytes(), "ISO8859-1");
return ServletActionContext.getServletContext().getResourceAsStream(
filePath);
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}

}
当点击下载时,用户是自己选在下载到哪里的。其实文件下载在代码里就是一句话。但是要注意方法名必须是get开头
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值