1

I am having a webapplication built using Servlet and JSP. I have built a file upload functionality using apache commons library. I would like to restrict the user from uploading a huge file - hence have set the limit as 20 MB.

I am getting the size using Fileitem.getSize() method which I guess is reading the entire file to determine the size. If a user tries to upload a file of few GBs in size , then wouldn't it add a lot of overhead on the application server? Is there any better alternative for getting the file size?

skaffman
  • 398,947
  • 96
  • 818
  • 769
Punter Vicky
  • 15,954
  • 56
  • 188
  • 315

1 Answers1

1

If you set the sizeMax property on ServletFileUpload, then the request will be rejected as soon as more than a certain amount of data is read.

Also, if you use DiskFileItemFactory, then you can set a threshold so that files over a certain size are streamed to local disk rather than being held in memory, which protects against large files.

skaffman
  • 398,947
  • 96
  • 818
  • 769
  • Hi - Thanks! I got this error message - "The field uploadFile exceeds its maximum permitted size of 20 characters". Is characters same as bytes? Is there a way to specify bytes? – Punter Vicky Jan 04 '12 at 12:12