1 19 20 package com.sslexplorer.core; 21 22 import java.io.File ; 23 import java.io.FileInputStream ; 24 import java.io.InputStream ; 25 import java.util.ArrayList ; 26 import java.util.List ; 27 28 import javax.servlet.http.HttpServletRequest ; 29 import javax.servlet.http.HttpServletResponse ; 30 31 import org.apache.struts.action.ActionForward; 32 33 import com.sslexplorer.boot.Util; 34 import com.sslexplorer.security.SessionInfo; 35 36 37 43 public class FileDownload extends AbstractDownloadContent { 44 45 private File file; 47 private String filename; 48 private int downloadCount; 49 50 60 public FileDownload(File file, String filename, String mimeType, ActionForward forward, String messageKey, 61 String messageResourcesKey) { 62 this(file, filename, mimeType, forward, messageKey, messageResourcesKey, null); 63 } 64 65 76 public FileDownload(File file, String filename, String mimeType, ActionForward forward, String messageKey, 77 String messageResourcesKey, String messageArg0) { 78 this(file, filename, mimeType, forward, messageKey, messageResourcesKey, messageArg0, null, null, null, null); 79 } 80 81 82 97 public FileDownload(File file, String filename, String mimeType, ActionForward forward, String messageKey, 98 String messageResourcesKey, String messageArg0, 99 String messageArg1, String messageArg2, String messageArg3, String messageArg4) { 100 super(mimeType, forward, messageKey, messageResourcesKey, messageArg0, messageArg1, messageArg2, messageArg3, messageArg4); 101 this.file = file; 102 this.filename = filename; 103 } 104 105 108 public String getFilename() { 109 return filename; 110 } 111 112 117 public void setFilename(String filename) { 118 this.filename = filename; 119 } 120 121 126 public File getFile() { 127 return file; 128 } 129 130 135 public void setFile(File file) { 136 this.file = file; 137 } 138 139 142 public void sendDownload(HttpServletResponse response, HttpServletRequest request) throws Exception { 143 InputStream in = null; 144 try { 145 in = new FileInputStream (file); 146 response.setContentLength((int) file.length()); 147 Util.copy(in, response.getOutputStream()); 148 response.getOutputStream().flush(); 149 } finally { 150 downloadCount++; 151 Util.closeStream(in); 152 } 153 } 154 155 158 public void completeDownload(SessionInfo session) { 159 } 160 161 164 public int getDownloadCount() { 165 return downloadCount; 166 } 167 } | Popular Tags |