Struts2下载

2014-11-24 02:33:28 · 作者: · 浏览: 0

package download;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;


/**
* STRUTS2
*
*
*
* attachment;filename=${filename}
*
* ${contentType}
*

*

*
* @author Administrator
*
*/

public class FileDownloadAcion{

private String filename;
private InputStream inputstream;
private String contentType;

static Map contentTypes=new HashMap();
static{
contentTypes.put("doc","application/msword");
contentTypes.put("xls","application/vnd.ms-execel");
contentTypes.put("ppt","application/vnd.ms-powerpoint");
contentTypes.put("pdf","application/pdf");
contentTypes.put("exe","application/octet-stream");
contentTypes.put("bin","application/octet-stream");
contentTypes.put("zip","application/zip");
contentTypes.put("htm","text/html");
contentTypes.put("html","text/html");
contentTypes.put("gif","image/gif");
contentTypes.put("bmp","image/bmp");
contentTypes.put("jpeg","image/jpeg");
contentTypes.put("jpg","image/jpeg");
contentTypes.put("png","image/png");
contentTypes.put("mpeg","video/jpeg");
contentTypes.put("mp3","audio/mpeg");
}

public String execute() throws FileNotFoundException
{
File file=new File(filename);
inputstream=new FileInputStream(file);
filename=file.getName();
contentType=getContentType(filename);
return null;
}

public String getFilename() throws UnsupportedEncodingException {
return new String(("download"+filename.toLowerCase().substring(filename.indexOf(".")+1)).getBytes(),"ISO-8859-1");
}
public void setFilename(String filename) {
this.filename = filename;
}
public InputStream getInputstream() {
return inputstream;
}

public void setInputstream(InputStream inputstream) {
this.inputstream = inputstream;
}

public String getContentType(String contentType) {
for(String txt:contentTypes.keySet())
{
if(filename.toLowerCase().endsWith(txt))
{
return this.contentTypes.get(txt);
}
}
return "application/octet-stream";
}

public void setContentType(String contentType) {
this.contentType = contentType;
}

}

作者 “飞沙”