我正在尝试检索具有较大内容(67MB)的行,但是在运行查询findOrFail
时这还没有完成,中间日志显示错误Allowed memory size of 134217728 bytes exhausted (tried to allocate 71224881 bytes)
然后在findOrFail
之前添加ini_set('memory_limit', '-1');
并可以使用,但是内存限制的问题是,当内存用尽时,Web服务器可能会崩溃
有人知道如何在不使用内存限制的情况下避免该错误吗?
这是我的代码
// 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;
}