Я пытаюсь получить строку с большим содержимым (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;
}