Допустимый объем памяти 134217728 байт исчерпан (попытался выделить 62926848 байт)

Я столкнулся с проблемой. Размер памяти исчерпан в laravel 5.5. Это раньше означает версию 5.4, мой код работает, но не сейчас. Для этого я увеличил объем памяти из файла php.ini memory_limit 1024M. но не работает. в основном я конвертирую файл формата файла Base64, а затем сохраняю его в локальном хранилище ПК или сервера.

Код контроллера

    public static  function convertBase64ToFile ( $file   , $dir  )
{
    $pos  = strpos($file, ';');
    $type = explode(':', substr($file, 0, $pos))[1];
    $format = explode('/',$type);

    $exploded = explode(',', $file);

    $decoded = base64_decode($exploded[1]);

    if(str_contains($exploded[0], $format[1]))

    { $extension = $format[1];}

    $filename = str_random().'.'.$extension;

    $path = public_path().$dir.$filename;

    file_put_contents($path, $decoded);

    return $filename;
   }

сообщение:

«Допустимый размер памяти 134217728 байт исчерпан (попытался выделить 65015808 байт)», «исключение»: «Symfony \ Component \ Debug \ Exception \ FatalErrorException»,


person pankaj    schedule 14.09.2017    source источник
comment
Насколько велик файл?   -  person ceejayoz    schedule 14.09.2017
comment
проверить математику. Я вижу 134 Мб, а не 1024.   -  person ficuscr    schedule 14.09.2017
comment
Взгляните на вывод phpinfo и проверьте, был ли изменен memory_limit.   -  person Gabriel Heming    schedule 14.09.2017
comment
Вы должны иметь возможность сделать что-то подобное, не загружая весь файл в память. Если вы сможете лучше описать данные в $file и их происхождение, я смогу предложить лучший план атаки.   -  person Sammitch    schedule 15.09.2017


Ответы (1)


В wamp у вас есть 2 php.ini файла. Один находится в \wamp\bin\php\php.x.y.z, но этот только для интерфейса командной строки, а второй находится в \wamp\bin\apache\apache2.x.y\bin\. Вы должны проверить второй

person Bart    schedule 14.09.2017