struts1---文件下载

本文详细介绍了Struts框架中文件上传和下载的功能封装,特别关注了下载部分,通过使用DownloadAction和FileStreamInfo类实现了文件的便捷下载。

struts对文件上传和下载都做了封装,开发者只需要调用相关方法就可方便地实现文件上传下载;上传已经讲过,这些对下载进行简要说明。

struts对文件下载专门封装了一个action,名为DownloadAction,开发者只需要编写一个action,让它继承DownloadAction,同时覆写protected StreamInfo getStreamInfo方法,此方法将会返回一个读取文件流的StreamInfo。struts将会通过StreamInfo来从服务器上下载相关文件,DowloadAction中有个内部类FileStreamInfo,它有个构造函数,可以某种类型的文件封装到一个StreamInfo对象中。下面是一个示例代码:

public class DownFileAction extends DownloadAction {

	@Override
	protected StreamInfo getStreamInfo(ActionMapping arg0, ActionForm arg1,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		//需要设置content-disposition头
		response.setHeader("content-disposition", "attachment;filename=1.jpg");
		String downfile = request.getSession().getServletContext().getRealPath("/download/1.jpg");  //servlet              //FileStreamInfo方法将封装一个File文件,并返回能取出其数据StreamInfo对象
		return new DownloadAction.FileStreamInfo("image/jpg", new File(downfile));
	}
}
下载jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>My JSP 'download.jsp' starting page</title>

  </head>
  
  <body>
    <html:link action="/download" >下载</html:link>
  </body>
</html>

配置文件:

</action>
		<action path="/download" type="cn.itcast.action.DownloadFileAction">
		
		</action>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值