Yes i see no difference, I assume StreamCopier.copy() just does what my code does. I cannot find it in any of the standard jars, so I assume this is one of your own.
Other than that everything else seems to be fine. Oh well I am sure I will owrk it out Steve ----- Original Message ----- From: "Anhony" <[EMAIL PROTECTED]> To: "Tomcat Users List" <tomcat-user@jakarta.apache.org> Sent: Thursday, May 05, 2005 2:19 AM Subject: Re: Serving files using tomcat > I use this code and it works in my app. Their are small differences between > how we copy the data to the response output. I don't know for sure, but this > may account for why the fragment I posted works. > > The difference is small, I think it would be worth giving it a try. > > AS- > > > ----- Original Message ----- > From: "Steve Vanspall" <[EMAIL PROTECTED]> > To: "Tomcat Users List" <tomcat-user@jakarta.apache.org> > Sent: Wednesday, May 04, 2005 11:47 AM > Subject: Re: Serving files using tomcat > > > > 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] > > > > > > > > --------------------------------------------------------------------- > 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]