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
13 import com.indexdata.mkjsf.pazpar2.HttpResponseWrapper;
\r
15 public abstract class FileUpload implements Serializable {
\r
18 protected HttpResponseWrapper response;
\r
19 private static Logger logger = Logger.getLogger(FileUpload.class);
\r
20 private static final long serialVersionUID = 748784638056392862L;
\r
22 public FileUpload() {
\r
25 public abstract HttpResponseWrapper submit() throws IOException;
\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
42 public void downloadResponse () throws IOException {
\r
43 logger.info(Utils.objectId(this) + " got a download request");
\r
44 FacesContext facesContext = FacesContext.getCurrentInstance();
\r
45 ExternalContext externalContext = facesContext.getExternalContext();
\r
46 externalContext.setResponseHeader("Content-Type", response.getContentType());
\r
47 externalContext.setResponseHeader("Content-Length", String.valueOf((response.getBytes().length)));
\r
48 externalContext.setResponseHeader("Content-Disposition", "attachment;filename=\"initresponse.xml\"");
\r
49 externalContext.getResponseOutputStream().write(response.getBytes());
\r
50 facesContext.responseComplete();
\r