首页 > 其他 > 详细

struts2 下载文件

时间:2014-11-29 11:36:48      阅读:320      评论:0      收藏:0      [点我收藏+]

当下载的文件名字中不含有汉字,或者下载的文件不需要考虑用户的权限问题时。直接让超链接的href属性为所要下载的文件名即可。否则最好使用struts2的文件下载机制。

以下载图片为例

bubuko.com,布布扣

完整的代码:

action:

import java.io.File;
import java.io.InputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.Action;

public class FileDownloadAction implements Action{
    private String filepath=null;
    
    private InputStream inputStream=null;
    public void setFilepath(String filepath) {
        this.filepath = filepath;
    }

    public InputStream getFile(){
        return inputStream;
    }

    @Override
    public String execute() throws Exception {
        String filename=ServletActionContext.
                getRequest().getParameter("filename");
        inputStream=ServletActionContext.
                getServletContext().getResourceAsStream(filepath+
                        File.separator+filename);
        if(inputStream!=null){
            return SUCCESS;
        }else {
            return ERROR;
        }
    }
}

struts.xml配置:

<package name="syxpj"  extends="struts-default" namespace="/syxpj">
    <action name="download" class="download" >
        <result name="success" type="stream">
            <param name="contentType">image/jpg</param>
            <param name="inputName">file</param>
            <param name="contentDisposition">filename="${request[‘filename‘]}"</param>   
            <param name="bufferSize">1024</param>  
        </result>
    </action>
</package>

使用:

<a href="${pageContext.request.contextPath}/syxpj/download.action?filename=belle.jpg">数据模板</a>

其他文件只需要将action 的result的contentType参数变为相应的值即可。

struts2 下载文件

原文:http://www.cnblogs.com/yaoyinglong/p/4130401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!