tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anhony" <anthonys...@comcast.net>
Subject Re: Serving files using tomcat
Date Wed, 04 May 2005 15:02:35 GMT
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" <steve@crmsoftware.com.au>
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: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Mime
View raw message