RE: downloading Word doc
We've recently had a similar problem with Word. It seems that when a .doc link is clicked, Word is handed the request to download. It establishes its own server connection and then proceeds to fire the server with numerous HTTP requests. On examination, it seems these are Word probing for Frontpage web extensions. If you have implemented your own HTTP server it is possible that you are not sending back the right responses? In most cases you need to return 404 responses to Word to indicate that you don't have the requested resources. Our problem was that our HTTP server only expected GET requests, whereas Word was POSTing us info! Hope that helps, Russ -Original Message- From: Laurens Pit [mailto:[EMAIL PROTECTED]] Sent: 13 November 2000 19:41 To: [EMAIL PROTECTED] Subject: downloading Word doc Hi, Whenever I download a file using Tomcat (i.e. it uses org.apache.tomcat.servlets.DefaultServlet) it works, except when I try to download a Word document. Then the client side seems to get stuck. This is reproducable on different client machines using different servers (Linux and Sun). Is anyone else experiencing this problem? I have also created a very simple Servlet to download a file. Works fine, except again for Word documents. Downloading Word documents from e.g. www.idrive.com work fine though, so it must be some servers-side thing. Can anyone please help?? package com.nervewireless; import java.io.*; import java.util.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public final class FileDownload extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { String path = "C:\\TEMP\\" + req.getPathInfo().substring(1); System.out.println("PATH: " + path); File f = new File(path); InputStream in = new BufferedInputStream(new FileInputStream(f)); res.setContentType("application/x-www-form-urlencoded"); res.setContentLength((int) f.length()); res.setHeader("Content-disposition","attachement; filename=" + f.getName()); OutputStream out = res.getOutputStream(); int sentsize = 0; int readlen; byte buffer[] = new byte[256]; while ((readlen = in.read(buffer)) != -1 ) { out.write(buffer, 0, readlen); sentsize += readlen; } // Success ! Close streams. out.flush(); out.close(); in.close(); System.out.println("DONE!"); } } Greets, Laurens
Re: downloading Word doc
Laurens Pit wrote: Can someone get this to the developers? Thanks. The most likely scenario is that JRun has a predefined MIME mapping that tells it to download Word documents as "application/ms-word", and Tomcat doesn't. To change this, add an appropriate mime-mapping entry in $TOMCAT_HOME/conf/web.xml (for Tomcat 3.1). For 3.2, there is unfortunately no easy way to adjust the default MIME mappings. Craig McClanahan
Re: downloading Word doc
Can someone get this to the developers? Thanks. After some more research I do believe there's a bug in Tomcat somewhere. I hosted my simple servlet in Allaire's JRun on Windows 2000, and it works fine. Also when I host the servlet in Netscape's IPlanet it works fine. See the code of the servlet below to test this. Versions tested: Tomcat 3.1 final, Tomcat 3.2 beta 7 Platform client: Windows 2000. Platform server: tested on Windows 2000, Linux RedHat v6.2 and Sun Solaris 8. java version "1.3.0" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-C) Java HotSpot(TM) Client VM (build 1.3.0-C, mixed mode) Greets, Laurens Hi, Whenever I download a file using Tomcat (i.e. it uses org.apache.tomcat.servlets.DefaultServlet) it works, except when I try to download a Word document. Then the client side seems to get stuck. This is reproducable on different client machines using different servers (Linux and Sun). Is anyone else experiencing this problem? I have also created a very simple Servlet to download a file. Works fine, except again for Word documents. Downloading Word documents from e.g. www.idrive.com work fine though, so it must be some servers-side thing. Can anyone please help?? package com.nervewireless; import java.io.*; import java.util.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public final class FileDownload extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { String path = "C:\\TEMP\\" + req.getPathInfo().substring(1); System.out.println("PATH: " + path); File f = new File(path); InputStream in = new BufferedInputStream(new FileInputStream(f)); res.setContentType("application/x-www-form-urlencoded"); res.setContentLength((int) f.length()); res.setHeader("Content-disposition","attachement; filename=" + f.getName()); OutputStream out = res.getOutputStream(); int sentsize = 0; int readlen; byte buffer[] = new byte[256]; while ((readlen = in.read(buffer)) != -1 ) { out.write(buffer, 0, readlen); sentsize += readlen; } // Success ! Close streams. out.flush(); out.close(); in.close(); System.out.println("DONE!"); } } Greets, Laurens
RE: downloading Word doc
Is it just word, or excel, powerpoint, etc too? Could this be the Frontpage extentions/Office SP1a bug rearing it's ugly head? This bug causes issues when Word tries to download the file, but it doesn't share the same browser cookies/sessions and so it gets sent to a login page or something else instead of the file it wants. -Original Message- From: Laurens Pit [mailto:[EMAIL PROTECTED]] Sent: Monday, November 13, 2000 02:41 PM To: [EMAIL PROTECTED] Subject: downloading Word doc Hi, Whenever I download a file using Tomcat (i.e. it uses org.apache.tomcat.servlets.DefaultServlet) it works, except when I try to download a Word document. Then the client side seems to get stuck. This is reproducable on different client machines using different servers (Linux and Sun). Is anyone else experiencing this problem? I have also created a very simple Servlet to download a file. Works fine, except again for Word documents. Downloading Word documents from e.g. www.idrive.com work fine though, so it must be some servers-side thing. Can anyone please help?? package com.nervewireless; import java.io.*; import java.util.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public final class FileDownload extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { String path = "C:\\TEMP\\" + req.getPathInfo().substring(1); System.out.println("PATH: " + path); File f = new File(path); InputStream in = new BufferedInputStream(new FileInputStream(f)); res.setContentType("application/x-www-form-urlencoded"); res.setContentLength((int) f.length()); res.setHeader("Content-disposition","attachement; filename=" + f.getName()); OutputStream out = res.getOutputStream(); int sentsize = 0; int readlen; byte buffer[] = new byte[256]; while ((readlen = in.read(buffer)) != -1 ) { out.write(buffer, 0, readlen); sentsize += readlen; } // Success ! Close streams. out.flush(); out.close(); in.close(); System.out.println("DONE!"); } } Greets, Laurens
Re: downloading Word doc
Just a guess, but try setting the content type to application/msword instead of application/x-www-form-urlencoded. Juan CPC Livelink Admin wrote: Is it just word, or excel, powerpoint, etc too? Could this be the Frontpage extentions/Office SP1a bug rearing it's ugly head? This bug causes issues when Word tries to download the file, but it doesn't share the same browser cookies/sessions and so it gets sent to a login page or something else instead of the file it wants. -Original Message- From: Laurens Pit [mailto:[EMAIL PROTECTED]] Sent: Monday, November 13, 2000 02:41 PM To: [EMAIL PROTECTED] Subject: downloading Word doc Hi, Whenever I download a file using Tomcat (i.e. it uses org.apache.tomcat.servlets.DefaultServlet) it works, except when I try to download a Word document. Then the client side seems to get stuck. This is reproducable on different client machines using different servers (Linux and Sun). Is anyone else experiencing this problem? I have also created a very simple Servlet to download a file. Works fine, except again for Word documents. Downloading Word documents from e.g. www.idrive.com work fine though, so it must be some servers-side thing. Can anyone please help?? package com.nervewireless; import java.io.*; import java.util.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public final class FileDownload extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { String path = "C:\\TEMP\\" + req.getPathInfo().substring(1); System.out.println("PATH: " + path); File f = new File(path); InputStream in = new BufferedInputStream(new FileInputStream(f)); res.setContentType("application/x-www-form-urlencoded"); res.setContentLength((int) f.length()); res.setHeader("Content-disposition","attachement; filename=" + f.getName()); OutputStream out = res.getOutputStream(); int sentsize = 0; int readlen; byte buffer[] = new byte[256]; while ((readlen = in.read(buffer)) != -1 ) { out.write(buffer, 0, readlen); sentsize += readlen; } // Success ! Close streams. out.flush(); out.close(); in.close(); System.out.println("DONE!"); } } Greets, Laurens