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
14 * Helper class for file uploads.
\r
16 * @author Niels Erik
\r
19 public abstract class FileUpload implements Serializable {
\r
21 private static Logger logger = Logger.getLogger(FileUpload.class);
\r
22 private static final long serialVersionUID = 748784638056392862L;
\r
24 public FileUpload() {
\r
27 public abstract UploadedFile getUploadedFile();
\r
29 public abstract void setUploadedFile(UploadedFile uploadedFile);
\r
31 public void downloadDoc() throws IOException {
\r
32 logger.info(Utils.objectId(this) + " got a download request");
\r
33 FacesContext facesContext = FacesContext.getCurrentInstance();
\r
34 ExternalContext externalContext = facesContext.getExternalContext();
\r
35 externalContext.setResponseHeader("Content-Type", getUploadedFile().getContentType());
\r
36 externalContext.setResponseHeader("Content-Length", String.valueOf((getUploadedFile().getBytes().length)));
\r
37 externalContext.setResponseHeader("Content-Disposition", "attachment;filename=\"" + FilenameUtils.getBaseName(getUploadedFile().getName()) + "\"");
\r
38 externalContext.getResponseOutputStream().write(getUploadedFile().getBytes());
\r
39 facesContext.responseComplete();
\r