It looks like you're trying to open a stream to the file D:\186209.jpg - but does this exist on the server as well as on your localhost. More to the point, is your server actually a Windows box - if it's *nix, then there is no "D:\" path anyway?!
And by the way, the above code would be better located in a servlet, not a JSP, due to the amount of processing.
In addition, you extract the local file name from a request parameter - do you really want to expose the structure of your file server to the world? You would be better using some servlet logic to map a public external name to the actual local file name - this also has the benefit of aliasing the file name in case of future change (so you can change the local name, but keep the public one the same; makes the application more robust). [ March 16, 2006: Message edited by: Charles Lyons ]
Charles Lyons (SCJP 1.4, April 2003; SCJP 5, Dec 2006; SCWCD 1.4b, April 2004)
Author of OCEJWCD Study Companion for Oracle Exam 1Z0-899 (ISBN 0955160340 / AmazonAmazon UK )