added "blacklist" of attachment MIME types that won't be compressed; a couple
of other minor tweaks
This commit is contained in:
@@ -342,7 +342,7 @@ public class ServletMultipartHandler
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private static Category logger = Category.getInstance(ServletMultipartHandler.class.getName());
|
||||
private static Category logger = Category.getInstance(ServletMultipartHandler.class);
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Attributes
|
||||
@@ -350,8 +350,8 @@ public class ServletMultipartHandler
|
||||
*/
|
||||
|
||||
private MimeMultipart multipart; // holds all the multipart data
|
||||
private Hashtable param_byname; // parameters by name
|
||||
private Vector param_order; // parameters in order
|
||||
private HashMap param_byname; // parameters by name
|
||||
private ArrayList param_order; // parameters in order
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructor
|
||||
@@ -360,34 +360,29 @@ public class ServletMultipartHandler
|
||||
|
||||
public ServletMultipartHandler(ServletRequest request) throws ServletMultipartException
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("creating new ServletMultipartHandler");
|
||||
|
||||
if (!canHandle(request))
|
||||
{ // we can't handle ordinary requests, just multipart/form-data ones
|
||||
logger.error("this request is not of type multipart/form-data");
|
||||
throw new ServletMultipartException("not a multipart/form-data request");
|
||||
|
||||
} // end if
|
||||
|
||||
try
|
||||
{ // build the MimeMultipart based on the ServletDataSource
|
||||
logger.debug("about to create MimeMultipart");
|
||||
multipart = new MimeMultipart(new ServletDataSource(request));
|
||||
logger.debug("about to get request count");
|
||||
int count = multipart.getCount();
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("retrieved " + count + " parameter(s) from request");
|
||||
|
||||
// allocate the multipart parameters and slot them into our arrays
|
||||
param_byname = new Hashtable();
|
||||
param_order = new Vector();
|
||||
param_byname = new HashMap();
|
||||
param_order = new ArrayList();
|
||||
for (int i=0; i<count; i++)
|
||||
{ // create the MultipartParameter structures and stash them for later use
|
||||
MultipartParameter parm = new MultipartParameter((MimeBodyPart)(multipart.getBodyPart(i)));
|
||||
param_byname.put(parm.getName(),parm);
|
||||
param_order.addElement(parm);
|
||||
param_order.add(parm);
|
||||
|
||||
} // end count
|
||||
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("ServletMultipartHandler created, " + param_order.size() + " params defined");
|
||||
|
||||
} // end try
|
||||
catch (MessagingException me)
|
||||
{ // translate a MessagingException into the nicer ServletMultipartException
|
||||
@@ -425,19 +420,34 @@ public class ServletMultipartHandler
|
||||
|
||||
public Enumeration getNames()
|
||||
{
|
||||
Vector tmp_vector = new Vector();
|
||||
Enumeration enum = param_order.elements();
|
||||
while (enum.hasMoreElements())
|
||||
ArrayList tmp_v = new ArrayList();
|
||||
Iterator it = param_order.iterator();
|
||||
while (it.hasNext())
|
||||
{ // add each name to the temporary vector
|
||||
MultipartParameter parm = (MultipartParameter)(enum.nextElement());
|
||||
tmp_vector.addElement(parm.getName());
|
||||
MultipartParameter parm = (MultipartParameter)(it.next());
|
||||
tmp_v.add(parm.getName());
|
||||
|
||||
} // end while
|
||||
|
||||
return tmp_vector.elements(); // and enumerate it
|
||||
return Collections.enumeration(tmp_v); // and enumerate it
|
||||
|
||||
} // end getNames
|
||||
|
||||
public Iterator getParamNames()
|
||||
{
|
||||
ArrayList tmp_v = new ArrayList();
|
||||
Iterator it = param_order.iterator();
|
||||
while (it.hasNext())
|
||||
{ // add each name to the temporary vector
|
||||
MultipartParameter parm = (MultipartParameter)(it.next());
|
||||
tmp_v.add(parm.getName());
|
||||
|
||||
} // end while
|
||||
|
||||
return Collections.unmodifiableList(tmp_v).iterator();
|
||||
|
||||
} // end getParamNames
|
||||
|
||||
public boolean isFileParam(String name)
|
||||
{
|
||||
MultipartParameter parm = (MultipartParameter)(param_byname.get(name));
|
||||
|
||||
@@ -14,6 +14,7 @@ public class FormDataTest extends HttpServlet
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response)
|
||||
throws IOException, ServletException
|
||||
{
|
||||
response.setContentType("text/html");
|
||||
PrintWriter out = response.getWriter();
|
||||
out.println("<HTML><HEAD><TITLE>Form Test</TITLE></HEAD><BODY>");
|
||||
out.println("<H1>Form Test</H1>");
|
||||
@@ -103,6 +104,7 @@ public class FormDataTest extends HttpServlet
|
||||
|
||||
} // end catch
|
||||
|
||||
response.setContentType("text/html");
|
||||
PrintWriter out = response.getWriter();
|
||||
out.println("<HTML><HEAD><TITLE>Form Test Results</TITLE></HEAD><BODY>");
|
||||
out.println("<H1>Form Test Results</H1>");
|
||||
|
||||
Reference in New Issue
Block a user