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]