Here is a sample code for file download with the support of the "DownloadAction".
import java.io.IOException;
import java.io.InputStream;
import java.io.ByteArrayInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DownloadAction;
public class ExampleByteArrayDownload extends DownloadAction {
protected StreamInfo getStreamInfo(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
String fileName = httpServletRequest.getParameter("fileName");
String fileExtension =
fileName.substring(fileName.lastIndexOf("."), fileName.length());
httpServletResponse.setHeader("Content-Disposition",
"attachment;filename=\"" + fileName +
"\"");
// Download a "pdf" file
String contentType = "application/pdf";
byte[] myPdfBytes = null; // Get the bytes from somewhere
return new ByteArrayStreamInfo(contentType, myPdfBytes);
}
protected class ByteArrayStreamInfo implements StreamInfo {
protected String contentType;
protected byte[] bytes;
public ByteArrayStreamInfo(String contentType, byte[] bytes) {
this.contentType = contentType;
this.bytes = bytes;
}
public String getContentType() {
return contentType;
}
public InputStream getInputStream() throws IOException {
return new ByteArrayInputStream(bytes);
}
}
}Reference
http://wiki.apache.org/struts/StrutsFileDownload
No comments:
Post a Comment