java学习

java学习

 

Struts2下载文件的程序

在jsp里写:
  
<a href="download.action">点此下载文件</a>

在struts.xml中:
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE struts PUBLIC
    
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
    
<struts>
        
<package name="mydown" extends="struts-default">
            
<action name="download" class="com.yjw.web.DownAction">
                
<param name="id">1</param>
                
<result type="stream">
                
                
                    
<!-- 下载文件的mime类型 -->
                    
<param name="contentType">${fileType}</param>
                    
<!-- 下载文件的描述 -->
                    
<param name="contentDisposition">attachment;filename=${fileName}</param>
                    
<!-- 设置缓冲区大小 -->
                    
<param name="bufferSize">1024</param>
                    
<!-- 获得文件名的getxxx方法的名字 ,不包含get-->
                    
<param name="inputName">inputStream</param>
                
</result>
            
</action>
        
</package>
    
</struts>
在action中的程序:
package com.yjw.web;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.Action;
public class DownAction implements  Action{
    
private String fileName;
    
private String id;
    
private String fileType;
    
public String execute() throws Exception {
        
return "success";
    }

public InputStream  getInputStream() throws IOException{
    String path 
= ServletActionContext.getServletContext().getRealPath("/");
    
if(id.equals("1")) {
        path 
= path + "download/less.pdf";
        fileName 
= "css.pdf";
        fileType 
= "application/pdf";
    }
 else {
        path 
= path + "download/data.xlsx";
        fileName 
= "data.xlsx";
        fileType 
= "application/vnd.ms-excel";
    }

        FileInputStream  stream 
= new  FileInputStream(new File(path));
    
return stream;
    }

public String getFileName() {
    
return fileName;
}

public void setFileName(String fileName) {
    
this.fileName = fileName;
}

public String getId() {
    
return id;
}

public void setId(String id) {
    
this.id = id;
}

public String getFileType() {
    
return fileType;
}

public void setFileType(String fileType) {
    
this.fileType = fileType;
}

}

posted on 2012-04-29 19:36 杨军威 阅读(182) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜