--- /dev/null
+package com.indexdata.mkjsf.utils;\r
+\r
+import java.io.IOException;\r
+import java.io.Serializable;\r
+\r
+import javax.faces.context.ExternalContext;\r
+import javax.faces.context.FacesContext;\r
+\r
+import org.apache.commons.io.FilenameUtils;\r
+import org.apache.log4j.Logger;\r
+import org.apache.myfaces.custom.fileupload.UploadedFile;\r
+\r
+/**\r
+ * Helper class for file uploads.\r
+ * \r
+ * @author Niels Erik\r
+ *\r
+ */\r
+public abstract class FileUpload implements Serializable {\r
+\r
+ private static Logger logger = Logger.getLogger(FileUpload.class);\r
+ private static final long serialVersionUID = 748784638056392862L;\r
+\r
+ public FileUpload() {\r
+ }\r
+\r
+ public abstract UploadedFile getUploadedFile();\r
+ \r
+ public abstract void setUploadedFile(UploadedFile uploadedFile);\r
+ \r
+ public void downloadDoc() throws IOException {\r
+ logger.info(Utils.objectId(this) + " got a download request");\r
+ FacesContext facesContext = FacesContext.getCurrentInstance();\r
+ ExternalContext externalContext = facesContext.getExternalContext();\r
+ externalContext.setResponseHeader("Content-Type", getUploadedFile().getContentType());\r
+ externalContext.setResponseHeader("Content-Length", String.valueOf((getUploadedFile().getBytes().length)));\r
+ externalContext.setResponseHeader("Content-Disposition", "attachment;filename=\"" + FilenameUtils.getBaseName(getUploadedFile().getName()) + "\"");\r
+ externalContext.getResponseOutputStream().write(getUploadedFile().getBytes());\r
+ facesContext.responseComplete();\r
+ }\r
+\r
+}\r