Moves init doc upload to InitCommandSp (sp ext of init)
[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 public abstract class FileUpload implements Serializable {\r
14 \r
15   private static Logger logger = Logger.getLogger(FileUpload.class);\r
16   private static final long serialVersionUID = 748784638056392862L;\r
17 \r
18   public FileUpload() {\r
19   }\r
20 \r
21   public abstract UploadedFile getUploadedFile();\r
22   \r
23   public abstract void setUploadedFile(UploadedFile uploadedFile);\r
24   \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
34   }\r
35 \r
36 }\r