Как исправить «Разрешенный объем памяти», когда я пытаюсь получить содержимое большого столбца - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь получить строку с большим содержимым (67 МБ), но это не завершается при выполнении запроса findOrFail, сразу же в журнале отображается ошибка Allowed memory size of 134217728 bytes exhausted (tried to allocate 71224881 bytes)

Затем доиз findOrFail добавить ini_set('memory_limit', '-1');, и это сработало, но проблема с ограничением памяти заключается в том, что веб-сервер может зависнуть при исчерпании памяти

Кто-то знает, как избежать этой ошибки без использования памятипредел?

Это мой код

// Doesn't work
$file = $query->findOrFail($id);
$file->download($request->filename);
// It works
ini_set('memory_limit', '-1');
$file = $query->findOrFail($id);
$file->download($request->filename);

Это метод загрузки

public function download($contentType = 'application/octet-stream') {
  header("Content-Type: $contentType");
  header("Content-Transfer-Encoding: Binary");
  header("Content-disposition: attachment; filename=\"$this->filename\"");
  echo $this->content;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...