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
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;
}
}
作者 “飞沙”