【问题标题】:Laravel Maatwebsite excel Large file upload fails (The import file failed to upload.)Laravel Maatwebsite excel大文件上传失败(导入文件上传失败。)
【发布时间】:2018-12-26 14:26:51
【问题描述】:

我正在创建一个系统将所有数据从 excel/csv 表上传并保存到数据库。 它适用于小文件,但每当我尝试上传 250MB、500MB 等大文件时,都会出现错误

导入文件上传失败。

我将 php.ini 文件中的 My Post Max 限制升级为 1GB。 最大内存使用,最大执行时间。但是没有任何效果。

我在 Laravel 中使用的插件是 Maatwebsite 3.1

【问题讨论】:

  • 您使用的是什么网络服务器?
  • 如果您收到任何日志消息,请将它们添加到您的问题中。

标签: php laravel maatwebsite-excel


【解决方案1】:

尝试在你的 php.ini 中设置 upload_max_filesize 和 post_max_size 的值:

;上传文件的最大允许大小。

upload_max_filesize = 500M

;必须大于或等于 upload_max_filesize

post_max_size = 500M

但不建议这样做,因为它会导致服务器过载。

【讨论】:

  • 没有增加最大文件大小,已更改,最近两个小时它正在上传,因为它在上传提交后就停止了,目前它只是在读取,在它保存到数据库之后,是我需要做任何特定的设置吗?因为它将一次保存 250+mb 的数据。
【解决方案2】:

尝试分块或批量导入: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;
    }
}

【讨论】:

    【解决方案3】:

    在 .env 文件中设置您的 QUEUE_DRIVER = database

    上传大 Excel 文件时,我总是收到“504 超时”。 但是使用 'QUEUE_DRIVER = database' 它上传完美。

    【讨论】:

      猜你喜欢
      • 2022-08-13
      • 2012-05-31
      • 2021-02-27
      • 1970-01-01
      • 2011-05-04
      • 2014-11-17
      • 2013-06-09
      • 2012-03-18
      相关资源
      最近更新 更多