我正在创建一个系统,用于将所有数据从excel / csv工作表上传并保存到数据库。 小型文件可以正常工作,但是每当我尝试上传250MB,500MB等大文件时,都会出现错误
导入文件上传失败。
我将php.ini文件中的My Post Max限制升级到1GB。 最大内存使用量,最大执行时间。但是什么都没有。
我与Laravel一起使用的插件是Maatwebsite
答案 0 :(得分:0)
尝试对导入进行分块或批处理:https://laravel-excel.maatwebsite.nl/3.1/imports/chunk-reading.html
以下是文档指南中的示例:
namespace App\Imports;
use App\User;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithChunkReading;
class UsersImport implements ToModel, WithChunkReading
{
public function model(array $row)
{
return new User([
'name' => $row[0],
]);
}
public function chunkSize(): int
{
return 1000;
}
}
答案 1 :(得分:0)
尝试在php.ini中设置upload_max_filesize和post_max_size的值:
;上载文件的最大允许大小。
upload_max_filesize = 500M
;必须大于或等于upload_max_filesize
post_max_size = 500M
但不建议这样做,因为它可能导致服务器过载。
答案 2 :(得分:0)
在.env文件中设置QUEUE_DRIVER = database
。
上传大型Excel文件时,我总是收到“ 504超时”消息。 但是使用“ QUEUE_DRIVER =数据库”,它可以完美上传。