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" <[email protected]>
> 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" <[email protected]>
> > 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]