Struts2下载文件的程序

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;
}

}

你可能感兴趣的:(Struts2下载文件的程序)