Reputation: 751
I have this action in controler
public function upload() {
// getting all of the post data
$file = array('image' => Input::file('image'));
//return $file;
// setting up rules
$rules = array('image' => 'required'); //mimes:jpeg,bmp,png and for max size max:10000
// doing the validation, passing post data, rules and the messages
$validator = Validator::make($file, $rules);
if ($validator->fails()) {
// send back to the page with the input data and errors
// return Redirect::to('upload')->withInput()->withErrors($validator);
return "error validation";
}
else {
// checking file is valid.
if (Input::file('image')->isValid()) {
$destinationPath = 'myuploads'; // upload path
$extension = Input::file('image')->getClientOriginalExtension(); // getting image extension
$fileName = Input::file('image')->getClientOriginalName();
// $fileName = rand(11111,99999).'.'.$extension; // renameing image
Input::file('image')->move($destinationPath, $fileName); // uploading file to given path
return "upload success";
}
else {
// sending back with error message.
Session::flash('error', 'uploaded file is not valid');
return "error";
}
}
}
It works for small file size like 2MB but won't work for 4MB file size. For 4MB or more it gets error in validation.In the code above there's this code
if ($validator->fails()) {
return "error validation";
}
It gives this custom error error validation
. I have already worked on configuring php.ini for max upload limit and post limit.
Upvotes: 25
Views: 47810
Reputation: 4285
For laravel apps running on nginx..
Identify your php ini file:
php -i | grep php.ini
Edit both the cli and the fpm files to be sure:
vim /etc/php/7.2/cli/php.ini
vim /etc/php/7.2/fpm/php.ini
Change these to your prefered limits:
post_max_size = 1G
upload_max_filesize = 1G
memory_limit = 1G
Restart php fpm
service php7.2-fpm restart
Reload nginx
service nginx reload
Upvotes: 4
Reputation: 1
FOR WAMP SERVER:
Go to /wamp64/bin/apache/apache(your version)/bin/
and open php.symlink(.ini)
and change
post_max_size,memory_limit,upload_max_filesize
as per your need.
and restart the wamp server.
Upvotes: 0
Reputation: 11310
Other answers refers saying only about the php.ini directiress.
I would like to give answer considering both php.ini and the Laravel Validation Rule
First check your php.ini
For the upload_max_filesize
and post_max_size
and change to your desired file size
upload_max_filesize = 100M
post_max_size = 100M
You shall have your rule like this
public static $updaterules = array(
'uploadedimage' => 'image|max:5000'
);
Additional information :
You shall check for the file format for image by
'uploaded' => 'mimes:jpeg,bmp,png'
Read more about Laravel validation here
As the questioner didn't noticed which php.ini file is being used by the server. I am updating my answer accordingly so it might be useful for someone who has similar problems in future
To find the full configuration about the php.ini file which is currently being used by your server.
For Linux
php -i | grep php.ini
For Windows
php -i | find /i "Configuration File"
From a php file
i.e.,
<?php
phpinfo();
?>
Upvotes: 64
Reputation: 751
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.
Upvotes: 14
Reputation: 16122
edit your php.ini
file and set:
memory_limit = 32M
upload_max_filesize = 70M
post_max_size = 100M
and restart apache.
Upvotes: 13
Reputation: 4591
Check max_file_uploads
and max_post_size
in php.ini
. It shows from phpinfo()
Upvotes: 0