My problem never Solved, Cannot upload file greater than 2M in laravel framework
I solved this problem by creating php.ini file inside the public directory and restarted my apache and rerun PHP artisan serve command
new php.ini code:
[PHP]
upload_max_filesize=2000M
max_file_uploads=2000M
memory_limit=128M
post_max_size=800M
Laravel - validate file size when PHP max upload size limit is exceeded
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 at app/Exceptions/Handler.php
. Update the render
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 the FileException
exception.
public function render($request, Exception $exception)
{
if ($exception instanceof \Symfony\Component\HttpFoundation\File\Exception\FileException) {
// create a validator and validate to throw a new ValidationException
return Validator::make($request->all(), [
'your_file_input' => 'required|file|size:5000',
])->validate();
}
return parent::render($request, $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.)
Small file get uploaded but not large file in Laravel
Well I found the answer, The things mentioned above to make change in php.ini about upload_max_filesize
and post_max_size
are infact the only thing to solve the problem mentioned by the question.
The only problem was that I am using wamp and apparently wamp has multiple php.ini files one in php folder and one in apache folder. I made changes in PHP folder when the change should be made to the one inside apache folder.
Why is PHP not allowing me to upload more than 2MB file?
Finally issue fixed:
the solution was to add php.ini
and .user.ini
files in the project's public directory to set the needed values (both files):
upload_max_filesize = 20M
post_max_size = 20M
like this:
I didn't find the real reason why updating /etc/php/7.4/fpm/php.ini
but these 2 files finally fixed it
Related Topics
Php 7 With Phpmyadmin Gives Lots of Deprecation Notices
Warning: Mysqli_Connect(): (Hy000/1049): Unknown Database in MAC Terminal Only
How to Get Previous Month from Selected Month
Laravel 6: Call to Undefined Method App\\User::Createtoken()
Laravel Ajax Response Return HTML Elements
How to Sends Two Values in Select Dropdown Using PHP
Cannot Simply Use Postgresql Table Name ("Relation Does Not Exist")
Why Does This Pdo Statement Silently Fail
PHP Multidimensional Array Search by Value
Call PHP Function from JavaScript
How to Use Bcrypt For Hashing Passwords in PHP
Secure Hash and Salt For PHP Passwords
Align Text and Image Side to Side With Bootstrap