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
writeGreetings,
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 tounderstandit 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 mywill 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]