Robert, I found the following link that discusses this:

http://archives.java.sun.com/cgi-bin/wa?A2=ind0106&L=jsp-interest&F=&S=&P=49196

It sounds like you are correct -- if request.getParameter() has been called you cannot get the input stream -- have you considered using a Servlet instead?

Robert Shields wrote:

Hi Struts Users

I'm trying to get the InputStream to read the binary contents of the
request within an Action's execute method. E.g.



public ActionForward execute(
                ActionMapping mapping,
                ActionForm form,
                HttpServletRequest request,
                HttpServletResponse response)
                throws IOException, ServletException {

        InputStream inputStream = request.getInputStream();

        // bytesAvailable is always 0
        int bytesAvailable = inputStream.available();

        int bytesRead;
        byte[] buf = new byte[1024];
        while((bytesRead = inputStream.read(buf)) != -1)
        {
                // do stuff
        }
}

So bytesAvailable is always 0, and inputStream.read(buf) immediately
returns -1.

I have heard that calling request.getParamter() before trying to access
the input stream can affect accessing the input stream. I believe struts
calls request.getParamter (it must do to populate the form bean).

My question is, how can I get access to the entire binary contents of
the HTTP body?

I'm using Tomcat 5.0.25 BTW

TIA
Rob


This e-mail has been scanned for all viruses by Star Internet. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk _____________________________________________________________________


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to