Php laravel-队列中已耗尽的允许内存大小

Php laravel-队列中已耗尽的允许内存大小,php,excel,laravel,Php,Excel,Laravel,我想通过队列从Excel文件启动导入,所以我这样做: 队列文件 /** * Execute the job. * * @return void */ public function handle() { Excel::filter('chunk')->load(storage_path('engine-valves.xlsx'))->chunk(500, function($results) { \Illuminate\Support\Facades\

我想通过队列从Excel文件启动导入,所以我这样做:
队列文件

/**
 * Execute the job.
 *
 * @return void
 */
public function handle()
{
    Excel::filter('chunk')->load(storage_path('engine-valves.xlsx'))->chunk(500, function($results) {
        \Illuminate\Support\Facades\File::put(storage_path('data2.txt'), json_encode($results));
    });
}
但在侦听过程中,我得到了标准错误
允许的内存大小xxx字节已用尽
。有一刻我试图设置
ini_set('memory_limit','-1')但是我仍然得到了这个错误。此错误有完整的行:
PHP致命错误:第889行的[app\u path]\vendor\phpoffice\phpexcel\Classes\phpexcel\Cell.PHP中允许的内存大小为134217728字节(试图分配100663304字节)

我正在使用:

哪里可能有问题?

可能不是一个好的做法,但您可以仅为该方法设置内存限制

/**
* Execute the job.
*
* @return void
*/
public function handle()
{
    ini_set('memory_limit', '-1');
    Excel::filter('chunk')->load(storage_path('engine-valves.xlsx'))>chunk(500, function($results) {
    \Illuminate\Support\Facades\File::put(storage_path('data2.txt'), json_encode($results));
    });
}

内存限制为-1时,您没有限制。

我认为,您应该更改php.ini文件中的最大上载文件大小。因此,打开php.ini文件并找到upload\u max\u filesize。然后更改值。您还应该更改php.ini文件中的post\u max\u size指令

太大的文件无法保存在内存中,因此您需要将其作为ByTestStream或类似于我在问题中所写的内容来读取-我已设置此文件以进行测试,但仍然存在此错误,请重新阅读。您有类似的示例吗?通常最好根据建议进行扩展。按您的建议进行更改。谢谢