实现流下载,使用struts的DownloadAction类非常简单,只需传入所需要的文件名,因考虑中文问题,需要转码将gbk转为iso-8859-1,就不会乱码了,以下是实现代码。 /**/ /* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package com.ggs.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** */ /** * MyEclipse Struts Creation date: 03-17-2008 * * XDoclet definition: * * @struts.action validate="true" */ public class DownloadAction extends org.apache.struts.actions.DownloadAction ... { @Override protected StreamInfo getStreamInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{ // TODO Auto-generated method stub String filename = request.getParameter("filename"); String filepath = "/upload/"; response.setHeader("Content-disposition", "attachment; filename=" + new String(filename.getBytes("gbk"), "iso8859_1"));// 设置文件名称 StreamInfo si = new ResourceStreamInfo("application/x-msdownload", this.servlet.getServletContext(), filepath + filename); return si; }}