首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

Ext+struts2怎么实现文件下载

2012-04-27 
Ext+struts2如何实现文件下载我前台用的是Ext的Grid来展示文件列表, 服务端是用Struts2,现在想让用户选中

Ext+struts2如何实现文件下载
我前台用的是Ext的Grid来展示文件列表, 服务端是用Struts2,现在想让用户选中一个文档后点下载按钮就能实现文档下载功能。数据库里放的是文档的名称和路径,文档的实际路径在c盘某个目录中,请问如何实现下载。

我再struts配置文件中
 <action name="DownLoadDocument" class="DocumentAction" method="downLoadDocument">
<result type="stream">
<param name="inputName">inputStream</param>
  <param name="contentType">application/x-msdownload;charset=utf-8</param>
  <param name="contentDisposition">attachment;filename="hello"</param>
  <param name="bufferSize">15097152</param>
   
</result>
</action>
可是返回时用firefox只能看到返回的文件流,并不能出现文件下载提示框。

请教各位高手是什么原因?

[解决办法]

Java code
<!------------文件名:DownLoadAction.java ------------------>import java.io.InputStream;import java.io.UnsupportedEncodingException;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class DownLoadAction extends ActionSupport {    //下载文件原始存放路径    private final static String DOWNLOADFILEPATH="/upload/";    //文件名参数变量    private String fileName;    public String getFileName() {        return fileName;    }    public void setFileName(String fileName) {        this.fileName = fileName;    }    //从下载文件原始存放路径读取得到文件输出流    public InputStream getDownloadFile() {        return ServletActionContext.getServletContext().getResourceAsStream(DOWNLOADFILEPATH+fileName);    }    //如果下载文件名为中文,进行字符编码转换    public String getDownloadChineseFileName() {        String downloadChineseFileName = fileName;        try {            downloadChineseFileName = new String(downloadChineseFileName.getBytes(), "ISO8859-1");        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        }        return downloadChineseFileName;    }    public String execute() {        return SUCCESS;    }} 

热点排行