For anyone who is interested, I found this interesting bug report on bugzilla describing the problem. Does anyone know a workaround for IIS adding 35 bytes?
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26890 -----Original Message----- From: Derrick Koes [mailto:[EMAIL PROTECTED] Sent: Thursday, October 28, 2004 2:27 PM To: Tomcat Users List; Struts User Apache (E-mail) Subject: RE: File upload Upon reviewing some struts code and documentation, the memory threshold for a file to be parsed for upload is 256K (configurable). If the file is over that size, I believe the uploader puts it in a temp file. However, since the "url" to retrieve it for parsing is a relative path, the parser cannot find it. Can anyone verify this? Thanks, Derrick -----Original Message----- From: Derrick Koes [mailto:[EMAIL PROTECTED] Sent: Thursday, October 28, 2004 11:52 AM To: Tomcat Users List Subject: File upload Configuration: Tomcat 5.0.24 IIS 5.0 JK2 connector Isapi_redirector2.dll Struts 1.1 Commons file upload 1.0 I seem to have an issue that when the file is a certain size it is written to a temp file on the file system before it is parsed by the multipart parser (at least that's what the exception message leads me to believe). However, since the working directory is my web app (/WEB-INF/ilt), the parser can't seem to find the file (not a fully qualified file name). This is a guess, but if correct I don't know how to fix the problem. Any help is appreciated. Belows is the stack trace and data from the request dumper valve: 2004-10-28 10:59:32 RequestDumperValve[/ilt]: =============================================================== 2004-10-28 10:59:43 RequestDumperValve[/ilt]: REQUEST URI =/ilt/ilt/iltPerformUpload.do 2004-10-28 10:59:43 RequestDumperValve[/ilt]: authType=null 2004-10-28 10:59:43 RequestDumperValve[/ilt]: characterEncoding=null 2004-10-28 10:59:43 RequestDumperValve[/ilt]: contentLength=340147 2004-10-28 10:59:43 RequestDumperValve[/ilt]: contentType=multipart/form-data; boundary=---------------------------41184676334 2004-10-28 10:59:43 RequestDumperValve[/ilt]: contextPath=/ilt 2004-10-28 10:59:43 RequestDumperValve[/ilt]: cookie=com.skillsoft.mgs.sso.RedirectorServlet.ReturnToSkillPort=http:// dkoesxp/djk/home/index.cfm?selectdTab=0 2004-10-28 10:59:43 RequestDumperValve[/ilt]: cookie=CFMX_JSESSIONID=c8301990451098975559821 2004-10-28 10:59:43 RequestDumperValve[/ilt]: cookie=CFID=19459 2004-10-28 10:59:43 RequestDumperValve[/ilt]: cookie=CFTOKEN=98634115 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=accept=text/xml,application/xml,application/xhtml+xml,text/html;q =0.9,text/plain;q=0.8,image/png,*/*;q=0.5 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=accept-language=en-us,en;q=0.5 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=connection=keep-alive 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=host=dkoesxp 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=referer=http://dkoesxp/ilt/ilt/iltUpload.do;jsessionid=3048D443AD 4341273FB5FED42958E7C4 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=user-agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=cookie=com.skillsoft.mgs.sso.RedirectorServlet.ReturnToSkillPort= http://dkoesxp/djk/home/index.cfm?selectdTab=0; CFMX_JSESSIONID=c8301990451098975559821; CFID=19459; CFTOKEN=98634115 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=content-length=340147 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=content-type=multipart/form-data; boundary=---------------------------41184676334 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=accept-encoding=gzip,deflate 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=accept-charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=keep-alive=300 2004-10-28 10:59:43 RequestDumperValve[/ilt]: locale=en_US 2004-10-28 10:59:43 RequestDumperValve[/ilt]: method=POST 2004-10-28 10:59:43 RequestDumperValve[/ilt]: pathInfo=null 2004-10-28 10:59:43 RequestDumperValve[/ilt]: protocol=HTTP/1.1 2004-10-28 10:59:43 RequestDumperValve[/ilt]: queryString=null 2004-10-28 10:59:43 RequestDumperValve[/ilt]: remoteAddr=10.20.3.42 2004-10-28 10:59:43 RequestDumperValve[/ilt]: remoteHost=10.20.3.42 2004-10-28 10:59:43 RequestDumperValve[/ilt]: remoteUser=null 2004-10-28 10:59:43 RequestDumperValve[/ilt]: requestedSessionId=3048D443AD4341273FB5FED42958E7C4 2004-10-28 10:59:43 RequestDumperValve[/ilt]: scheme=http 2004-10-28 10:59:43 RequestDumperValve[/ilt]: serverName=dkoesxp 2004-10-28 10:59:43 RequestDumperValve[/ilt]: serverPort=80 2004-10-28 10:59:43 RequestDumperValve[/ilt]: servletPath=/ilt/iltPerformUpload.do 2004-10-28 10:59:43 RequestDumperValve[/ilt]: isSecure=false 2004-10-28 10:59:43 RequestDumperValve[/ilt]: --------------------------------------------------------------- 2004-10-28 10:59:43 StandardWrapperValve[action]: Servlet.service() for servlet action threw exception org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed. \WEB-INF\ilt\temp\upload_00000001.tmp (The system cannot find the path specified) at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase .java:429) at org.apache.struts.upload.CommonsMultipartRequestHandler.handleRequest(Co mmonsMultipartRequestHandler.java:233) at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1209) at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcess or.java:821) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: 254) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:157) at com.skillsoft.ilt.servlet.NDCContextFilter.doFilter(NDCContextFilter.jav a:62) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:157) at com.skillsoft.ilt.servlet.HitCountFilter.doFilter(HitCountFilter.java:86 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo ntext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 20) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon textValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo ntext.java:104) at org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve. java:169) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo ntext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 20) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo ntext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :117) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo ntext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 20) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo ntext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 20) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:296) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:372) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:694) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java: 626) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:807) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool .java:644) at java.lang.Thread.run(Thread.java:534) 2004-10-28 10:59:43 RequestDumperValve[/ilt]: --------------------------------------------------------------- 2004-10-28 10:59:43 RequestDumperValve[/ilt]: authType=null 2004-10-28 10:59:43 RequestDumperValve[/ilt]: contentLength=-1 2004-10-28 10:59:43 RequestDumperValve[/ilt]: contentType=text/html 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=Pragma=No-cache 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=Cache-Control=no-cache 2004-10-28 10:59:43 RequestDumperValve[/ilt]: header=Expires=Thu, 01 Jan 1970 00:00:00 GMT 2004-10-28 10:59:43 RequestDumperValve[/ilt]: message=null 2004-10-28 10:59:43 RequestDumperValve[/ilt]: remoteUser=null 2004-10-28 10:59:43 RequestDumperValve[/ilt]: status=500 2004-10-28 10:59:43 RequestDumperValve[/ilt]: =============================================================== --------------------------------------------------------------------- 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]