码迷,mamicode.com
首页 > 其他好文 > 详细

struts2 下载文件

时间:2014-11-29 11:38:33      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

当下载的文件名字中不含有汉字,或者下载的文件不需要考虑用户的权限问题时。直接让超链接的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 下载文件

标签:style   blog   http   io   ar   color   os   使用   sp   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!