Are you sure it's hard coded? Isn't the max upload size set in the
extension point?

<extension name="org.apache.tapestry.multipart-decoder"
      class="org.apache.tapestry.multipart.DefaultMultipartDecoder">
        <configure property-name="maxSize" type="double" value="100000000"/>
        <!-- where the value is the maximum size you want to allow -->
    </extension>

        --- Pat

> -----Original Message-----
> From: Ben Dotte [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, December 13, 2005 10:32 AM
> To: Tapestry users
> Subject: RE: Client-side validated uploads
> 
> Actually I believe file uploads have a hard-coded limit of 10mb right
> now so I doubt that would be a problem (I've seen this limit hit, you
> get a big ugly error message). See
> http://issues.apache.org/jira/browse/TAPESTRY-764
> 
> To get rid of the nasty error message when this limit is hit, I believe
> its not hard to validate the filesize to be below the 10mb limit.. can't
> remember the details off the top of my head. You can also override
> MultipartDecoderImpl and make a public setter on maxSize if 10mb is too
> small.
> 
> Ben
> 
> -----Original Message-----
> From: Daniel M Garland [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, December 13, 2005 11:07 AM
> To: Tapestry users
> Subject: Re: Client-side validated uploads
> 
> Hi Ben, all
> 
> This is also close to what I had come up with. Actually, I had to avoid
> the use of ImageIO because we're deploying on Mac OSX and their ImageIO
> is buggy im sure...
> 
> Anyway, this server-side solution has the following problems:
> 1) If you try to upload a 1GB file, you arn't stopping anybody
> 2) You're reading all that data into memory, again if you upload the
> huge file then you're going to lead to issues
> 
> In my case, we're hoping that some non-I.T. people will be using the app
> 
> and I can garantee they'll try to upload a billboard-sized TIFF. Hence
> the need to validate client-side.
> 
> It would be nice if I could set the value field on a file type (which is
> 
> what is allowed in the 4.01 spec) but it is not supported in most
> browsers.
> 
> Do I have to actually implement my own uploading code? Ouch :(
> 
> Ben Dotte wrote:
> > I wrote a validator for this but I'm not totally sure this doesn't end
> > up uploading the whole file anyway.. doesn't seem like it though.
> >
> > public void validate(IFormComponent field, ValidationMessages
> messages,
> > Object object) throws ValidatorException
> > {
> >     IUploadFile imageFile = (IUploadFile)object;
> >     InputStream fis = imageFile.getStream();
> >     ImageInputStream iis = null;
> >
> >     try
> >     {
> >             iis = ImageIO.createImageInputStream(fis);
> >             Iterator imageReaders = ImageIO.getImageReaders(iis);
> >             if (!imageReaders.hasNext())
> >             {
> >                     // There are no image readers for this file
> >                     fis.close();
> >                     throw new ValidatorException("Invalid image
> > file.");
> >             }
> >             ImageReader firstReader =
> > (ImageReader)imageReaders.next();
> >             String imageFormat =
> > firstReader.getFormatName().toLowerCase();
> >             if (!imageFormat.equals("jpeg") &&
> > !imageFormat.equals("jpg") &&
> >                     !imageFormat.equals("gif") &&
> > !imageFormat.equals("png"))
> >             {
> >                     // This is a valid image but we only accept
> > jpeg, jpg, gif, or png
> >                     fis.close();
> >                     throw new ValidatorException("The image format
> > must be JPG, GIF, or PNG.");
> >             }
> >             BufferedImage image = ImageIO.read(iis);
> >             if (image.getWidth() > maxWidth || image.getHeight() >
> > maxHeight)
> >             {
> >                     // This image is too big
> >                     fis.close();
> >                     throw new ValidatorException("The image exceeds
> > the maximum width/height.");
> >             }
> >             fis.close();
> >     }
> >     catch (IOException ioe)
> >     {
> >             // There was some other problem uploading the image
> >             throw new ValidatorException("Invalid image file.");
> >     }
> >     finally
> >     {
> >             if (iis != null) {
> >                     try { iis.close(); } catch (IOException ioe) {}
> >             }
> >             if (fis != null) {
> >                     try { fis.close(); } catch (IOException ioe) {}
> >             }
> >     }
> > }
> >
> > HTH
> >
> > Ben
> >
> > -----Original Message-----
> > From: Daniel M Garland [mailto:[EMAIL PROTECTED]
> > Sent: Tuesday, December 13, 2005 10:01 AM
> > To: [email protected]
> > Subject: Client-side validated uploads
> >
> > Hi all,
> >
> > I'm trying to figure out how to get around a brick wall:
> >
> > I want to validate an image file based upon its dimensions and
> filesize
> > before allowing the file to be written up to the server. I thought
> about
> >
> > achieving this using a signed applet to read the file, and then pass
> an
> > acceptable filename to an Upload component. However, the value field
> > will not be supported in most browsers, so is there any other way I
> can
> > use the Uploading features of Tapestry by somehow extending Upload?
> >
> > If not, where is the code that does this? I hear something about the
> > commons project at apache but currently jakarta.apache.org/commons/
> > appears to be down.
> >
> > Thanks for your help in advance.
> 
> --
> Dan Garland
> ------------------------
> [EMAIL PROTECTED]
> icq: 120963437
> aim: dmgarland1767
> 
> 
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit http://www.messagelabs.com/email
> ______________________________________________________________________
> 
> ---------------------------------------------------------------------
> 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]

Reply via email to