struts2 动态文件下载 (在javaeye里搜索过,没找到满意的)

诚心请教

struts2 文件下载,我想把一个文件下的文件全部显示在页面上,
每个文件后有个下载链接,点击“下载”,就可以下载到硬盘上了,struts.xml,
Filedownload.java ,我只会写到这了。

如果大家有空就帮我看看,谢谢!

还要解决中文问题!!!
请会的人帮帮我,非常感谢!我已经做了好长时间了
在其他论坛帖了好几天了,只有看的,没回复的,加了
10几个java高级群也是这样因此帖到javaeye,希望大家能够帮忙!
在外面学,没有老师,只能通过这些方式了!


struts.xml

<struts> 
    <constant name="struts.devMode" value="true" /> 
    <constant name="struts.i18n.encoding" value="GBK"/> 
    <package name="default" namespace="/" extends="struts-default"> 
        <action name="filedownload" class="com.heqing.action.Filedownload"> 
       
        <!--<interceptors>  
            <interceptor name="downloadinterceptor" 
                class="com.heqing.DownloadInterceptor">  
            </interceptor>  
            <interceptor-stack name="myinterceptor">  
                <interceptor-ref name="downloadinterceptor" />  
                <interceptor-ref name="defaultStack"></interceptor-ref>  
            </interceptor-stack>  
        </interceptors>  
--> 

            <param name="fileName"></param>   <!-- 设置文件名参数,由页面上传入 -->   
            <result name="success" type="stream">  
                <param name="contentType">application/octet-stream</param>   <!-- 下载文件类型定义 -->  
                <param name="contentDisposition">       <!-- 下载文件处理方法 --> 
                    attachment;filename="${downloadChineseFileName}" 
                </param>  
                <param name="inputName">downloadFile</param>  <!-- 下载文件输出流定义 --> 
            </result>  
        </action> 
    </package> 
</struts> 


 

Filedownload.java

import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class Filedownload extends ActionSupport {
    // 下载文件原始存放路径
    private final static String DOWNLOADFILEPATH = "/file/";
    // 文件名参数变量
    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);
   //这里的filename写成固定的文件名如aa.txt这样就是写死了,只能下载一个,我想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;
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值