Question

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?

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top