| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1133 人关注过本帖
标题:struts2 动态文件下载 大家帮帮忙啊,做了很久了!
只看楼主 加入收藏
heqingkelly
Rank: 2
等 级:论坛游民
帖 子:27
专家分:80
注 册:2010-9-26
结帖率:100%
收藏
已结贴  问题点数:50 回复次数:8 
struts2 动态文件下载 大家帮帮忙啊,做了很久了!
struts2 文件下载 问题
我写了个文件下载,我想用<s:iterator>标签遍历一个文件夹下的文件,
每个文件后有个下载链接,点击“下载”,就可以下载到硬盘上了,struts.xml,
Filedownload.java ,都写好了,就是jsp不知怎么写,主要是标签不会用,
而且也不知道这下载的路径怎么定的,如果大家有空就帮我看看,谢谢!
还要解决中文问题
为了把悬赏分增加,我又重新发表了一个,请会的人帮帮我,非常感谢!我已经做了好长时间了
请帮我思考思考,如果悬赏分不够,我的可以全给你

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.dingxun.download.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
import
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class Filedownload extends ActionSupport {
    // 下载文件原始存放路径
    private final static String DOWNLOADFILEPATH = "/";
    // 文件名参数变量
    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;
    }
}


[ 本帖最后由 heqingkelly 于 2010-10-8 21:01 编辑 ]
搜索更多相关主题的帖子: 动态 文件 
2010-10-07 03:22
heqingkelly
Rank: 2
等 级:论坛游民
帖 子:27
专家分:80
注 册:2010-9-26
收藏
得分:0 
感谢啊,
帮忙啊,诚心请教!
2010-10-07 03:30
heqingkelly
Rank: 2
等 级:论坛游民
帖 子:27
专家分:80
注 册:2010-9-26
收藏
得分:0 
怎么没人解答一下啊?
2010-10-07 13:25
heqingkelly
Rank: 2
等 级:论坛游民
帖 子:27
专家分:80
注 册:2010-9-26
收藏
得分:0 
大家不要看到长代码就走了啊
不会,可以再问问你们认识的人啊
多谢你们的帮助
现在学习也没老师问,只能来论坛,QQ群问了
我弄了几天了,网上也搜过了
我确实不会了
2010-10-08 20:59
syg5434
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:山沟沟
等 级:版主
威 望:10
帖 子:285
专家分:781
注 册:2010-2-28
收藏
得分:35 
是用struts2写的,我也写过一个简单点的,
jsp页面上就写了一个<a href="down.action">下载</a>
发送action到配置文件,具体下载过程是在Action里实现的,如下:
程序代码:
package tarena.actions;

import import import import import org.apache.struts2.ServletActionContext;

public class DownLoadAction {
    private InputStream downStream;

    private String fname;

    public InputStream getDownStream() {
        return downStream;
    }

    public void setDownStream(InputStream downStream) {
        this.downStream = downStream;
    }

    public String getFname() {
        try {
            // 为了防止另存为对话框出现中文乱码
            return new String(fname.getBytes("GBK"), "ISO-8859-1");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
            return fname;
        }
    }

    public void setFname(String fname) {
        this.fname = fname;
    }

    public String execute() {
        // 可以根据请求提交过来的资源ID号,获取资源名称
        fname = "sql语句.txt";
        String path = ServletActionContext.getServletContext().getRealPath(
                "upload");
        String destFile = path + "/" + "sql.txt";
        try {
            downStream = new FileInputStream(destFile);
            return "down";
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            return "fail";
        }

    }
}


不要迷恋哥,嫂子会揍你。阿-弥-陀-佛--!
2010-10-12 19:11
heqingkelly
Rank: 2
等 级:论坛游民
帖 子:27
专家分:80
注 册:2010-9-26
收藏
得分:0 
虽然不是按我的要求,还是固定的文件下载啊,我要的是遍历一个文件夹下的所有文件,提供下载啊
后台催我结账了,还是结账吧
。。。。。。。。。。。。
2010-10-13 17:30
heqingkelly
Rank: 2
等 级:论坛游民
帖 子:27
专家分:80
注 册:2010-9-26
收藏
得分:0 
还没满意答案就催我结账,诶。。。。。。。。。。。。。。。。。
2010-10-13 17:32
syg5434
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:山沟沟
等 级:版主
威 望:10
帖 子:285
专家分:781
注 册:2010-2-28
收藏
得分:0 
不好意思哦,能力有限。。。

不要迷恋哥,嫂子会揍你。阿-弥-陀-佛--!
2010-10-13 18:01
heqingkelly
Rank: 2
等 级:论坛游民
帖 子:27
专家分:80
注 册:2010-9-26
收藏
得分:0 
没关系,都几天了,就你一人回复,这论坛太冷清了,
非常谢谢你,有人回复就很高兴了,
2010-10-14 11:53
快速回复:struts2 动态文件下载 大家帮帮忙啊,做了很久了!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016662 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved