Маленький файл загружается, но не большой файл в Laravel

У меня есть это действие в контроллере

    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";
    }
  }
}

Он работает для небольшого размера файла, такого как 2 МБ, но не будет работать для размера файла 4 МБ. Для 4MB или более он получает ошибку в валидации. В коде выше этот код

 if ($validator->fails()) {

       return "error validation";
      }

Он дает эту пользовательскую ошибку error validation. Я уже работал над настройкой php.ini для максимального ограничения загрузки и ограничения по почте.

Ответ 1

Ну, я нашел ответ: вещи, упомянутые выше, чтобы внести изменения в php.ini около upload_max_filesize и post_max_size, являются единственно возможными для решения проблемы, упомянутой в вопросе.

Единственная проблема заключалась в том, что я использую wamp и, видимо, wamp имеет несколько файлов php.ini один в папке php и один в папке apache. Я внес изменения в папку PHP, когда нужно внести изменения в папку внутри Apache.

Ответ 2

Другие ответы ссылаются только на php.ini directiress.

Я хотел бы дать ответ, рассматривая как правило php.ini, так и правило проверки Laravel

Сначала проверьте php.ini

Для upload_max_filesize и post_max_size и измените требуемый размер файла

upload_max_filesize = 100M
post_max_size = 100M

У вас должно быть ваше правило вроде этого

public static $updaterules = array(
    'uploadedimage' => 'image|max:5000'            
    );

Дополнительная информация:

Вы должны проверить формат файла для изображения

'uploaded' => 'mimes:jpeg,bmp,png'

Подробнее о Валидация Laravel здесь

Обновление:

Поскольку вопросник не заметил, какой файл php.ini используется сервером. Я обновляю свой ответ соответственно, поэтому он может быть полезен для тех, у кого есть схожие проблемы в будущем.

Чтобы найти полную конфигурацию файла php.ini, который в настоящее время используется вашим сервером.

Для Linux

php -i | grep php.ini

Для Windows

php -i | find /i "Configuration File"

Из файла php

то есть.,

<?php
phpinfo();
?>

Ответ 3

отредактируйте файл php.ini и установите:

memory_limit = 32M
upload_max_filesize = 70M
post_max_size = 100M

и перезапустите apache.

Ответ 4

Отметьте max_file_uploads и max_post_size в php.ini. Он показывает из phpinfo()