Thanks Jason I'm having a strange issue with serving up these images. I'm getting a "socket write error" from the following code. There are 3 images, the details follow the code. The first two images appear, the third fails to appear.
response.setContentLength((int) f.length()); response.setContentType("application/x-file-download"); response.setHeader("Content-disposition", "attachment; filename=" + name ); System.err.println(">> " + response.toString()); FileInputStream fis = new FileInputStream(f); ServletOutputStream sos = response.getOutputStream(); byte[] buffer = new byte[32768]; int n = 0; int x = 0; while ((n = fis.read(buffer)) != -1) { System.err.println(">> x = " + x++ + " n = " + n); sos.write(buffer, 0, n); } fis.close(); sos.flush(); } catch (Exception e) { System.err.println(">> Error serving image: " + request.getParameter("local")); e.printStackTrace(); } Image 1 bytes: 7734 Image 2 bytes: 79279 Image 3 bytes: 2871052 (image called "2_another quite night on tour.tif") The generated log file: ---------------------------- >> [EMAIL PROTECTED] >> x = 0 n = 7734 >> [EMAIL PROTECTED] >> x = 0 n = 32768 >> x = 1 n = 32768 >> [EMAIL PROTECTED] >> x = 0 n = 32768 >> x = 1 n = 32768 >> x = 2 n = 32768 >> x = 3 n = 32768 >> x = 4 n = 32768 >> x = 5 n = 32768 >> x = 6 n = 32768 >> x = 7 n = 32768 >> x = 8 n = 32768 >> x = 9 n = 32768 >> x = 2 n = 13743 >> x = 10 n = 32768 >> Error serving image: 2_another quite night on tour.tif ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:366) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:403) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:323) at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:392) at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:381) at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:76 ) at com.bpx.website.controller.action.Image.execute(Image.java:54) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.ja va:419) Appreciate any help. Kind regards mc On 7 Sep 2005 at 15:33, Jason Lea wrote: > Oh right, you need to discover the location automatically. > > Something like this might work: > > request.getSession().getServletContext().getRealPath("/images"); > > That should give you the full path to /images. > > > > Murray Collingwood wrote: > > >How do I find the path actual path to "/images" assuming of course that > >"/images" is a > >url reference? > > > >Is there something like $STRUTS_ROOT? > > > >Kind regards > >mc > > > > > >On 7 Sep 2005 at 14:50, Jason Lea wrote: > > > > > > > >>I guess it depends if you are trying to restrict access to these images. > >> > >>To make all images available for anyone, put them into /images, for example. > >> > >>If you want to not allow any direct access to them, you could create a > >>directory under /WEB-INF and put them there. You would then have to > >>create something to serve the images up to browser. > >> > >>Or set up container managed security, put them into /auth/images, then > >>put a security constraint on /auth/images so that only users with the > >>required role is allowed to view the images. > >> > >> > >>Murray Collingwood wrote: > >> > >> > >> > >>>Hi all (Gosh, I'm starting to feel like a regular on this list...) > >>> > >>>After my experiences below I have rewritten my application to store the > >>>images in a > >>>local sub-directory, however when I ran this new version the sub-directory > >>>was > >>> > >>> > >created > > > > > >>>under the Tomcat/bin directory - not really appropriate. > >>> > >>>Should I be trying to reference my application directory and store the > >>>images under > >>> > >>> > >my > > > > > >>>"/WEB-INF" directory? > >>> > >>>Do I have to setup a special directory on the server that can be > >>>referenced by > >>> > >>> > >Tomcat > > > > > >>>to serve the images directly? > >>> > >>>What are others doing? > >>> > >>>Also, if you are referencing this directory in your application, is it > >>>hard-coded or do > >>> > >>> > >you > > > > > >>>have an entry in your 'context.xml'? What sort of entry do you use? > >>> > >>>Kind regards > >>>mc > >>> > >>> > >>> > >>> > >>-- > >>Jason Lea > >> > >> > >> > >>--------------------------------------------------------------------- > >>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > >> > >>-- > >>No virus found in this incoming message. > >>Checked by AVG Anti-Virus. > >>Version: 7.0.344 / Virus Database: 267.10.18/91 - Release Date: 6/09/2005 > >> > >> > >> > > > > > > > >FOCUS Computing > >Mob: 0415 24 26 24 > >[EMAIL PROTECTED] > >http://www.focus-computing.com.au > > > > > > > > > > > > -- > Jason Lea > > > FOCUS Computing Mob: 0415 24 26 24 [EMAIL PROTECTED] http://www.focus-computing.com.au -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.10.18/91 - Release Date: 6/09/2005 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]