1 package com.indexdata.mkjsf.utils;
\r
3 import java.io.IOException;
\r
4 import java.io.Serializable;
\r
6 import javax.faces.context.ExternalContext;
\r
7 import javax.faces.context.FacesContext;
\r
9 import org.apache.commons.io.FilenameUtils;
\r
10 import org.apache.log4j.Logger;
\r
11 import org.apache.myfaces.custom.fileupload.UploadedFile;
\r
13 public abstract class FileUpload implements Serializable {
\r
15 private static Logger logger = Logger.getLogger(FileUpload.class);
\r
16 private static final long serialVersionUID = 748784638056392862L;
\r
18 public FileUpload() {
\r
21 public abstract UploadedFile getUploadedFile();
\r
23 public abstract void setUploadedFile(UploadedFile uploadedFile);
\r
25 public void downloadDoc() throws IOException {
\r
26 logger.info(Utils.objectId(this) + " got a download request");
\r
27 FacesContext facesContext = FacesContext.getCurrentInstance();
\r
28 ExternalContext externalContext = facesContext.getExternalContext();
\r
29 externalContext.setResponseHeader("Content-Type", getUploadedFile().getContentType());
\r
30 externalContext.setResponseHeader("Content-Length", String.valueOf((getUploadedFile().getBytes().length)));
\r
31 externalContext.setResponseHeader("Content-Disposition", "attachment;filename=\"" + FilenameUtils.getBaseName(getUploadedFile().getName()) + "\"");
\r
32 externalContext.getResponseOutputStream().write(getUploadedFile().getBytes());
\r
33 facesContext.responseComplete();
\r