Javadoc
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / utils / FileUpload.java
1 package com.indexdata.mkjsf.utils;\r
2 \r
3 import java.io.IOException;\r
4 import java.io.Serializable;\r
5 \r
6 import javax.faces.context.ExternalContext;\r
7 import javax.faces.context.FacesContext;\r
8 \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
12 \r
13 /**\r
14  * Helper class for file uploads.\r
15  * \r
16  * @author Niels Erik\r
17  *\r
18  */\r
19 public abstract class FileUpload implements Serializable {\r
20 \r
21   private static Logger logger = Logger.getLogger(FileUpload.class);\r
22   private static final long serialVersionUID = 748784638056392862L;\r
23 \r
24   public FileUpload() {\r
25   }\r
26 \r
27   public abstract UploadedFile getUploadedFile();\r
28   \r
29   public abstract void setUploadedFile(UploadedFile uploadedFile);\r
30   \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
40   }\r
41 \r
42 }\r