If you are using struts, you should be forwarding a null.  That is
probably your problem.

On 5/4/05, Steve Vanspall <[EMAIL PROTECTED]> wrote:
> Unfortunately that is what I do
> 
> OutputStream dos = null;
>     FileInputStream fis = null;
>    try
>    {
>     fis = new FileInputStream(rf.getPdf());
>     response.setContentType("application/pdf");
>     response.setContentLength((int) rf.getPdf().length());
>     //response.setHeader(response.)
>     dos = response.getOutputStream();
> 
>     int read = -1;
>     byte[] bytes = new byte[100000];
>     while((read = fis.read(bytes)) != -1)
>      dos.write(bytes, 0, read);
>     dos.flush();
>     return mapping.findForward("PDF");
>    } catch (Exception e)
>    {
>     // TODO Auto-generated catch block
>     if(e instanceof SocketException)
>      return mapping.findForward("reload");
>     throw new IOException(e.toString());
>    }
>    finally
>    {
> 
>     if(dos != null)
>      dos.close();
>     if(fis != null)
>      fis.close();
> 
>    }
> 
> Acrobat now loads but the PDF doesn't appear.
> 
> Probably worth mentioning that I use struts, so I forward to a blank page
> with the content type set to application/pdf, maybe that is the problem, but
> not sure what else to do with the return.
> 
> When I do the same thing with a dynamic image and forward to a page with a
> jpg content type, the image appears without a problem.
> 
> Steve
> ----- Original Message -----
> From: "Anhony" <[EMAIL PROTECTED]>
> To: "Tomcat Users List" <tomcat-user@jakarta.apache.org>
> Sent: Thursday, May 05, 2005 1:02 AM
> Subject: Re: Serving files using tomcat
> 
> > Greetings,
> >
> > Take a look at the code fragment below. It should serve as a good starting
> > point.
> > I hope this helps.
> >
> > AS-
> >
> >     private void processPDFRequest(HttpServletRequest request,
> > HttpServletResponse response) throws ServletException, IOException,
> > Exception
> >     {
> >         int bytesCopied = 0;
> >
> >         FileInputStream fin = null;
> >         OutputStream out = null;
> >
> >         String fileAddress = "The fully qualified path to your PDF file";
> >         if( fileAddress == null )
> >             return;
> >
> >         int ext = fileAddress.lastIndexOf( '.' );
> >         if( ext != -1 )
> >         {
> >             ext = fileAddress.substring( ext+1,
> > fileAddress.length() ).toLowerCase();
> >
> >             if( ext == "pdf" )
> >                 response.setContentType("application/pdf");
> >             else
> >                 "Do whatever you think best to do"
> >         }
> >         else
> >             "Do whatever you think best to do"
> >
> >         try
> >         {
> >             out = response.getOutputStream();
> >             fin = new FileInputStream( fileAddress );
> >             bytesCopied = StreamCopier.copy( fin, out );
> >         }
> >         finally
> >         {
> >             if( fin != null )
> >                 fin.close();
> >             if( out != null )
> >             {
> >                 out.flush();
> >                 out.close();
> >             }
> >         }
> >     }
> >
> >
> > ----- Original Message -----
> > From: "Steve Vanspall" <[EMAIL PROTECTED]>
> > To: "Tomcat User List" <tomcat-user@jakarta.apache.org>
> > Sent: Wednesday, May 04, 2005 9:29 AM
> > Subject: Serving files using tomcat
> >
> >
> > Hi,
> >
> > I have been looking around and haven't found a solution that works
> >
> > basically I have a PDF that gets created dynamically. Now to save memory I
> > have the PDF written to a file rather than a ByteArray. The only way I can
> > be sure that I wont encounter errors creating the file is to use
> > File.createTempFile. The creation goes of ok. And I have checked the file
> > itself and the PDF looks great.
> >
> > How do i now serve this to the user who has requested it. If I try to
> write
> > it to the response (using the same method I use to creare dynamic image,
> > this works), it just shows up a blank screen.
> >
> > The problem also is, even if it did show the PDF, acrobat, to my
> understand
> > will read only chunks of the stream and will go pack to get more. Thisis a
> > problem because there is nothing to go back for.
> >
> > So the point,
> >
> > If I can just redirect the browser to a file in the tomcat temp directory
> > (can I do that, will the use have access to that directory), then how do I
> > translate the location of the temp directory to a url that is accesible
> > outside.
> >
> > If not then what other suggestions can people give me.
> >
> > Thanks in advance
> >
> > Steve
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


-- 
"You can lead a horse to water but you cannot make it float on its back."
~Dakota Jack~

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

Reply via email to