Sylvain Wallez wrote:
Hi all,

Uploads in Cocoon are handled at the servlet level, including a check of the maximum upload size which raises an exception. This exception is a major pain because it gives no chance to the application to warn the user that she exceeded the allowed limit. All we get is an ugly servlet engine-generated error page.

Rather than throwing an exception, the multipart parser could store in the request a special implementation of the Part interface, "InvalidPart" that allows the application to know about it and react

Or 'RejectedPart' - which is closer to truth.


accordingly. For example, the CForms upload widget could show a validation error in such occasions.

All methods of the Part interface (getInputStream, getName, etc) would of course throw an exception in InvalidPart, but that exception would have a chance to be handled cleanly by a <map:handle-errors>

It will be better if only getInputStream() throws exception. Methods like getSize(), getUploadName() can be (extremely!) useful for creatining meaningful error messages:

   Unfortunately, your file FooBar.doc is 101Kb large, which exceeds
   allowed upload limit by 1Kb.


WDYT?

Violent +1!

Vadim

Reply via email to