It is already fixed in 2.0.3, the release version: private Hashtable readHeaders(TokenStream in) throws IOException {
Hashtable headers = new Hashtable(); String hdrline = readln(in); while (!"".equals(hdrline)) { StringTokenizer tokenizer = new StringTokenizer(hdrline); headers.put(tokenizer.nextToken(" :").toLowerCase(), tokenizer.nextToken(" :;")); // The extra tokenizer.hasMoreTokens() in headers.put // handles the filename="" case IE6 submits for an empty // upload field. while (tokenizer.hasMoreTokens()) { headers.put(tokenizer.nextToken(" ;=\""), tokenizer.hasMoreTokens() ? tokenizer.nextToken("=\"") : ""); } hdrline = readln(in); } return headers; } --- Volker Schneider <[EMAIL PROTECTED]> wrote: > Hi myself, > > this is a bug in MultipartParser.java in the > readHeaders() method within > Cocoon 2.0.2. > > When you define <form name="form2" > enctype="multipart/form-data" > method="post"> and you use a <input > name="uploadedfile" type="file"> field, > the header will contain: > > ...name="uploadedfile"; filename="" > > When filename is empty the StringTokenizer in > readHeaders() will have no > more tokens, but will get a nextToken() call. > > Here's an approach for a bug fix: > > ... > while (tokenizer.hasMoreTokens()) > { > //---- old code > // headers.put(tokenizer.nextToken(" ;=\""), > // tokenizer.nextToken("=\"")); > > //---- new code > String key = tokenizer.nextToken(" ;=\""); > String value = ""; > if (tokenizer.hasMoreTokens()) > { > value = tokenizer.nextToken("=\""); > } > else > { > value = ""; > } > > headers.put(key, value); > //---- end of new code > } > > This helps unless the filename="" is not followed by > an additional > attribute, but it helps for the moment. > > Please fix this bug, if it is not done yet. > > Best regards > - Volker - > > > -----Original Message----- > From: Volker Schneider > [mailto:volker.schneider@;danet.de] > Sent: Sonntag, 10. November 2002 22:32 > To: [EMAIL PROTECTED] > Subject: enctype="multipart/form-data" problem > > > Dear colleagues, > > if have a form and I want to upload a file from that > form. When I define my > form as > > <form name="form2" enctype="multipart/form-data" > method="post"> > > the ordinary input fields will not be transferred. > > When I use method="get" it works. Unfortunately I > have to use the "post" > method because I have to transfer a lot of data and > I'm not sure, whether > this is possible with the "get" method (because of > limited URL length). > > Splitting the form is not possible, because I need > the rest of the data too. > > Please help me, what can I do? > > Thank you, best regards > - Volker - > > > --------------------------------------------------------------------- > Please check that your question has not already > been answered in the > FAQ before posting. > <http://xml.apache.org/cocoon/faq/index.html> > > To unsubscribe, e-mail: > <[EMAIL PROTECTED]> > For additional commands, e-mail: > <[EMAIL PROTECTED]> > > > --------------------------------------------------------------------- > Please check that your question has not already > been answered in the > FAQ before posting. > <http://xml.apache.org/cocoon/faq/index.html> > > To unsubscribe, e-mail: > <[EMAIL PROTECTED]> > For additional commands, e-mail: > <[EMAIL PROTECTED]> > __________________________________________________ Do you Yahoo!? U2 on LAUNCH - Exclusive greatest hits videos http://launch.yahoo.com/u2 --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>