Trigger Downloaddialog

From: Frank Lorenz (f.lorenz_at_bmiag.de)
Date: 10/14/03


Date: Tue, 14 Oct 2003 14:16:22 +0200

Hi

A servlet generated response is treaten differently each time. One time the
webbrowser raises correctly a download dialog, wich enables the user to save
a file. This happens when the data to download is small. The other time,
instead to show a download dialog, the webbrowser shows the data directly as
a new page. This happens with larger downloaddata.

Therefore i suppose it depends on wrong caching adjustments i've made in the
responseheader. But i'm not really shure about it. The header is configured
in a way, that the response is declarated as extreme volatile, so that the
caching mechanism actually will not grip.

The problem occurs with any webbrowser (doesn't matter if ie, ns,
mozilla...). Tomcat 4.0.x is used.

Regards Frank

--
  public void doGet(HttpServletRequest aRequest, HttpServletResponse
aResponse)
    throws IOException, ServletException {
    try
    {
      int size;
      ByteArrayOutputStream out;
      String csv_export =
(String)aRequest.getSession().getAttribute(ATTR_KEY);
      if((csv_export != null) && (csv_export.trim().length() > 0))
      {
        size = csv_export.length();
        out = new ByteArrayOutputStream(size);
        out.write(csv_export.getBytes());
        out.writeTo(aResponse.getOutputStream());
        out.flush();
        out.close();
        // Response-Header Setup
        aResponse.setHeader("Content-Disposition","attachment; filename=" +
FILENAME  + "; size=" + size);
        aResponse.setContentLength(size);
        aResponse.setContentType("text/comma-separated-values");
        aResponse.addDateHeader("Expires:", (System.currentTimeMillis()+
1000*60*2));
        aRequest.getSession().removeAttribute(ATTR_KEY);
      }
      else
      {
        aRequest.getSession().removeAttribute(ATTR_KEY);
        throw new Exception("No Data");
      }
    }
    catch (Exception e)
    {
       e.printStackTrace();
       aRequest.getSession().removeAttribute(ATTR_KEY);
       sendErrorPage(aResponse, e.getMessage());
    }
  }
--


Relevant Pages

  • Raising Download Dialog
    ... A servlet generated response is treaten differently each time. ... webbrowser raises correctly a download dialog, wich enables the user to save ... This happens when the data to download is small. ... The header is configured ...
    (comp.lang.java.programmer)
  • Re: Trigger Downloaddialog
    ... > A servlet generated response is treaten differently each time. ... > webbrowser raises correctly a download dialog, wich enables the user to save ... This happens when the data to download is small. ...
    (comp.lang.java.programmer)
  • Re: Office 2003 SP2
    ... > explicitly inquired about someone else downloading the patch for you, ... My response to you indicated that this would not be legal. ... > converation about whether it is legal or not to ask someone else to download ... install the update onto my PC from that CD? ...
    (microsoft.public.officeupdate)
  • Re: [unix, console] : something like wget but with forms + authentification
    ... >> download the response after submitting your name and password, ... > tools, like lynx, links, elinks, wget, don't seem to access to this ... I used wget to download the pages you linked to, ... html expert, but perhaps I have been exposed to a little more ...
    (comp.unix.shell)
  • Re: Ajax Update Progress control
    ... they postback to the page and expect a specially formated xml response that they parse, ... to do this you need to use a link to download to a new target window, then using ajax poll the server to see if the download is done. ... sourceBytes = fs.Read; ...
    (microsoft.public.dotnet.framework.aspnet)