diff options
Diffstat (limited to 'BKUOnline')
| -rw-r--r-- | BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/HashDataInputServlet.java | 24 | 
1 files changed, 14 insertions, 10 deletions
| diff --git a/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/HashDataInputServlet.java b/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/HashDataInputServlet.java index 40a66de0..c9af43d0 100644 --- a/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/HashDataInputServlet.java +++ b/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/HashDataInputServlet.java @@ -5,15 +5,11 @@ import java.io.InputStreamReader;  import java.io.OutputStreamWriter;
  import java.io.Reader;
  import java.io.Writer;
 -import java.net.MalformedURLException;
 -import java.net.URL;
  import java.util.List;
 -import javax.servlet.ServletConfig;
  import javax.servlet.ServletException;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
 -import javax.xml.namespace.QName;
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
 @@ -21,15 +17,11 @@ import org.apache.commons.logging.LogFactory;  import at.gv.egiz.bku.binding.BindingProcessor;
  import at.gv.egiz.bku.binding.Id;
  import at.gv.egiz.bku.binding.IdFactory;
 -import at.gv.egiz.bku.online.applet.BKUApplet;
  import at.gv.egiz.bku.slexceptions.SLRuntimeException;
  import at.gv.egiz.bku.utils.StreamUtil;
  import at.gv.egiz.stal.HashDataInput;
  import at.gv.egiz.stal.STAL;
 -import at.gv.egiz.stal.service.STALService;
  import at.gv.egiz.stal.service.impl.STALRequestBroker;
 -import at.gv.egiz.stal.service.impl.STALRequestBrokerImpl;
 -import at.gv.egiz.stal.service.impl.STALServiceImpl;
  public class HashDataInputServlet extends SpringBKUServlet {
 @@ -52,6 +44,12 @@ public class HashDataInputServlet extends SpringBKUServlet {      }
    }
 +  private static boolean isMSIE(HttpServletRequest req) {
 +    String useragent = req.getHeader("User-Agent");
 +    String user = useragent.toLowerCase();
 +    return (user.indexOf("msie") != -1);
 +  }
 +
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
 @@ -78,7 +76,7 @@ public class HashDataInputServlet extends SpringBKUServlet {      }
      if ((param == null) && (hdi.size() == 1)) {
        param = hdi.get(0).getReferenceId();
 -      log.debug("Request parameter not set, setting to: "+param);
 +      log.debug("Request parameter not set, setting to: " + param);
      }
      for (HashDataInput hd : hdi) {
        if (hd.getReferenceId().equals(param)) {
 @@ -89,10 +87,16 @@ public class HashDataInputServlet extends SpringBKUServlet {            charSet = "UTF-8";
          }
          resp.setCharacterEncoding(charSet);
 +        if (isMSIE(req)) {
 +          String fileExt = hd.getMimeType().equalsIgnoreCase("text/plain") ? ".txt"
 +              : ".xhtml";
 +          resp.addHeader("content-disposition", "attachment; filename=" + param
 +              + fileExt);
 +        }
          Reader r = new InputStreamReader(hd.getHashDataInput(), charSet);
          Writer w = new OutputStreamWriter(resp.getOutputStream(), charSet);
          StreamUtil.copyStream(r, w);
 -        w.close();
 +        w.flush();
          return;
        }
 | 
