Changes response object naming
[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 import com.indexdata.mkjsf.pazpar2.HttpResponseWrapper;\r
14 \r
15 public abstract class FileUpload implements Serializable {\r
16 \r
17   protected UploadedFile uploadedFile;\r
18   protected HttpResponseWrapper response;\r
19   private static Logger logger = Logger.getLogger(FileUpload.class);\r
20   private static final long serialVersionUID = 748784638056392862L;\r
21 \r
22   public FileUpload() {\r
23   }\r
24 \r
25   public abstract String submit() throws IOException;\r
26   \r
27   public UploadedFile getUploadedFile() {\r
28     return uploadedFile;\r
29   }\r
30 \r
31   public void setUploadedFile(UploadedFile uploadedFile) {\r
32     logger.info(Utils.objectId(this) + " received an uploaded file [" + Utils.objectId(uploadedFile) + "]");\r
33     this.uploadedFile = uploadedFile;\r
34   }\r
35   \r
36   public void downloadDoc() throws IOException {\r
37     logger.info(Utils.objectId(this) + " got a download request");\r
38     FacesContext facesContext = FacesContext.getCurrentInstance();\r
39     ExternalContext externalContext = facesContext.getExternalContext();\r
40     externalContext.setResponseHeader("Content-Type", uploadedFile.getContentType());\r
41     externalContext.setResponseHeader("Content-Length", String.valueOf((uploadedFile.getBytes().length)));\r
42     externalContext.setResponseHeader("Content-Disposition", "attachment;filename=\"" + FilenameUtils.getBaseName(uploadedFile.getName()) + "\"");\r
43     externalContext.getResponseOutputStream().write(uploadedFile.getBytes());\r
44     facesContext.responseComplete();\r
45   }\r
46   \r
47   public void downloadResponse () throws IOException {\r
48     logger.info(Utils.objectId(this) + " got a download request");\r
49     FacesContext facesContext = FacesContext.getCurrentInstance();\r
50     ExternalContext externalContext = facesContext.getExternalContext();\r
51     externalContext.setResponseHeader("Content-Type", response.getContentType());\r
52     externalContext.setResponseHeader("Content-Length", String.valueOf((response.getBytes().length)));\r
53     externalContext.setResponseHeader("Content-Disposition", "attachment;filename=\"initresponse.xml\"");\r
54     externalContext.getResponseOutputStream().write(response.getBytes());\r
55     facesContext.responseComplete();\r
56   }\r
57 \r
58 \r
59 \r
60 }\r