读书人

struts1的两种上载的方式

发布时间: 2012-09-17 12:06:51 作者: rapoo

struts1的两种下载的方式

1、第一种方式

public ActionForward downLoad(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String realPath = request.getSession().getServletContext().getRealPath("/downLoad/caohuan.txt");
File file = new File(realPath);
InputStream in = new FileInputStream(file);
//BufferedReader reader = new BufferedReader(new InputStreamReader(in));
OutputStream out = response.getOutputStream();
//这是弹出下载框
response.setHeader("Content-Type", "application/octet-stream");
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(file.getName().getBytes(), "ISO8859-1"));
response.addHeader("Content-Length", "" + file.length());

byte [] buffer = new byte[1024];
int len = 0;
while((len = in.read(buffer)) != -1)
{
out.write(buffer, 0, len);
}
out.flush();
in.close();
out.close();
return null;
}

2、第二种方式

package cn.itcast.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DownloadAction;


public class ItcastAction extends DownloadAction {


protected StreamInfo getStreamInfo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("-----------");
//要下载的文件必须放在web-inf的路径下
return new DownloadAction.ResourceStreamInfo("application/octet-stream", this.getServlet().getServletContext(), "/WEB-INF/caohuan.txt");
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("---------------");
response.setHeader("Content-Disposition", "attachment;filename=caohuan.txt");
return super.execute(mapping, form, request, response);
}

}

//strtus-config.xml

<action path="/downLoad" type="cn.itcast.actions.ItcastAction"></action>

//jsp

<html:link action="/downLoad">downLoad</html:link>

读书人网 >软件架构设计

热点推荐