I have my website hosted at a shared server. The maximum upload limit is 5MB. I do not have the ability to change the PHP ini settings, which is fine.
In Laravel, all the validations and file uploading works fine if the uploaded file is under 5MB. However, when a file greater than 5MB is uploaded, I get the following exception instead of a validation error:
How can I validate or force the file to be under the upload limit from server?
You don't seem interested in changing the PHP limits to allow larger files. It looks to me like you want your max upload to be 5MB, and return a proper response if it is over that.
You can handle the
FileException
exception inside your exception handler atapp/Exceptions/Handler.php
. Update therender
method to add in the code you need. For example, if you'd like to return a validation exception, you will need to handle the validation inside the exception handler for theFileException
exception.This is untested, but should give you the general idea.
You can also do client side validation via javascript, so that a file that is too large is never actually sent to your server, but javascript can be disabled or removed by the client, so it would be good to have nice server side handling set up.
For the client side validation, if you attach an event handler to the "change" event for the file input, you can check the file size using
this.files[0].size
, and perform any additional actions after that (disable form, remove uploaded file, etc.)