Struts2文件下载

来源:互联网 发布:.net和php哪个好一些 编辑:程序博客网 时间:2024/06/11 05:14
package com.sonimtech.weblms.action;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.util.ArrayList;import java.util.List;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import com.opensymphony.xwork2.ActionSupport;import com.sonimtech.weblms.util.SystemParams;/** * 下载处理Action *  * @author baiyang *  *         日期:2012.06.11 *  */@Results(value = { @Result(params = { "contentType", "application/octet-stream", "inputName", "inputStream", "contentDisposition","attachment;filename=${fileName}", "bufferSize", "4096" }, name = "download", type = "stream") })public class DownloadAction extends ActionSupport {private static final long serialVersionUID = 1L;private static String DOCUMENTS_LOCATION = "/var/rockton/xpa/docs/";private final List<String> docs = new ArrayList<String>();private String fileName;private InputStream inputStream;@Overridepublic String execute() throws Exception {if (fileName != null) {inputStream = new FileInputStream(DOCUMENTS_LOCATION + fileName);fileName = URLEncoder.encode(fileName, "UTF-8");return "download";}String location = SystemParams.getParamWithFallback("DOCUMENTS_LOCATION");if (location == null || location.trim().length() == 0) {location = DOCUMENTS_LOCATION;}File file = new File(location);if (!file.exists()) {return SUCCESS;}File[] files = file.listFiles();for (File file2 : files) {docs.add(file2.getName());}System.out.println("共" + docs.size() + "份文档!");return super.execute();}public List<String> getDocs() {return docs;}public void setFileName(String fileName) {try {this.fileName = new String(fileName.getBytes("ISO-8859-1"), "UTF-8");System.out.println("用户请求下载的文件:" + this.fileName);} catch (UnsupportedEncodingException e) {e.printStackTrace();}}public String getFileName() {return fileName;}public InputStream getInputStream() {return inputStream;}public void setInputStream(InputStream inputStream) {this.inputStream = inputStream;}}

原创粉丝点击