Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Small file get uploaded but not large file in Laravel

Tags:

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.

like image 633
Chelsea Avatar asked Feb 15 '15 18:02

Chelsea


People also ask

How can I upload large files in laravel?

If you want to upload big files you should use streams. Here's the code to do it: $disk = Storage::disk('s3'); $disk->put($targetFile, fopen($sourceFile, 'r+')); PHP will only require a few MB of RAM even if you upload a file of several GB.

Can we upload any file size in PHP?

By default, PHP file upload size is set to maximum 2MB file on the server, but you can increase or decrease the maximum size of file upload using the PHP configuration file ( php. ini ), this file can be found in different locations on different Linux distributions.


1 Answers

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

Update :

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(); ?> 
like image 71
Sulthan Allaudeen Avatar answered Oct 07 '22 16:10

Sulthan Allaudeen