blob: 39b0ccfcc9cf272b302b3e391f9cafe01d2af753 [file] [log] [blame]
<?xml version="1.0"?>
<!--
Copyright 2005 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<faqs title="FileUpload FAQ">
<part id="general">
<title>General</title>
<faq id="empty-parse">
<question>
Why is parseRequest() returning no items?
</question>
<answer>
This most commonly happens when the request has already been parsed, or
processed in some other way. Since the input stream has aleady been
consumed by that earlier process, it is no longer available for parsing
by Commons FileUpload.
</answer>
</faq>
<faq id="read-timeout">
<question>
Why am I getting "Read timed out" exceptions while parsing?
</question>
<answer>
The most common cause of these exceptions is when FileUpload is being
used on a site that is using the Tomcat ISAPI redirector. There was a
bug in earlier versions of that component that caused problems with
multipart requests. The bug was fixed some time ago, so you probably
just need to pick up a newer version. See the
<a href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15278">Tomcat bug report</a>
for full details.
</answer>
</faq>
<faq id="class-not-found">
<question>
Why is NoClassDefFoundError being thrown while parsing?
</question>
<answer>
This most commonly happens when attempting to rely on a shared copy of
the Commons FileUpload jar file provided by your web container. The
solution is to include the FileUpload jar file as part of your own
web application, instead of relying on the container.
</answer>
</faq>
</part>
<part id="struts">
<title>FileUpload and Struts</title>
<faq id="parse-in-action-fails">
<question>
I'm using FileUpload in an Action, but it's not working. Why?
</question>
<answer>
Struts recognises multipart requests, and parses them automatically,
presenting the request parameters to your code in the same manner as
if they were regular request parameters. Since Struts has already
processed the request, and made it available in your form bean, the
input stream is no longer available for parsing, so attempting to do
so with FileUpload will fail.
</answer>
</faq>
<faq id="howto-parse-in-action">
<question>
But I need to parse the request myself. How can I do that?
</question>
<answer>
Struts parses multipart a request as a part of the process of populating
your form bean from that request. If, for some reason, you need to have
full control over the multipart parsing, you can do so by configuring
your action mapping without an associated form bean. (A better way of
doing this, however, is to replace the default multipart handler with
your own. See the Struts documentation for details.)
</answer>
</faq>
</part>
</faqs>