Laravel-excel: [рдкреНрд░рд╢реНрди] рдХрддрд╛рд░рдмрджреНрдз рдЦрдВрдб рдкрдврд╝рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рдЕрдХреНрддреВре░ 2018  ┬╖  21рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Maatwebsite/Laravel-Excel

рдХреГрдкрдпрд╛ рдкрдврд╝реЗрдВ: рдЯреЗрдореНрдкреНрд▓реЗрдЯ рднрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ! рдЬрд┐рди рдореБрджреНрджреЛрдВ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЙрдард╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рд▓рд╛рд░рд╡реЗрд▓-рдПрдХреНрд╕реЗрд▓ рдХреЗ рдпреЛрдЧрджрд╛рди рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ (https://laravel-excel.maatwebsite.nl/docs/3.1/getting-started/contributing) рдФрд░ рдЖрдЪрд╛рд░ рд╕рдВрд╣рд┐рддрд╛ (https://github.com/Maatwebsite/Laravel-Excel/) рдХреЛ рдкрдврд╝рд╛ рд╣реИред рдмреНрд▓реЙрдм/3.1/CODE_OF_CONDUCT.md)? рдПрдХ рдореБрджреНрджрд╛ рджрд░реНрдЬ рдХрд░рдХреЗ, рдЖрдкрд╕реЗ рдЗрд╕рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдХреЗ рд╕рд╛рде рд╕рдореНрдорд╛рди рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдХреГрдкрдпрд╛ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрдЧреЗ рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рд▓рдЧрд╛рдПрдВ: [рдмрдЧ] [рдкреНрд░рд╕реНрддрд╛рд╡] [рдкреНрд░рд╢реНрди]ред

рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЗрдВ

рдпрджрд┐ рдЖрдкрдиреЗ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдХреЛрд╖реНрдардХреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ X рд▓рдЧрд╛рдПрдВ:
  • [ ] рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рдмрд╛рд╣рд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо, рд╕рдорд╕реНрдпрд╛ Laravel Excel рд╕реЗ рдЕрд▓рдЧ рд╣реИред
  • [x] рдЬрд╛рдВрдЪ рдХреА рдЧрдИ рдХрд┐ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдкрд╣рд▓реЗ рд╣реА рджрд░реНрдЬ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред
  • [x] рдЬрд╛рдБрдЪ рдХреА рдЧрдИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдкреАрдЖрд░ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

рд╕рдВрд╕реНрдХрд░рдгреЛрдВ

рдХреГрдкрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рд╕рд╛рдмрд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрдерд╛рд╕рдВрднрд╡ рд╕рдЯреАрдХ рдФрд░ рдкреВрд░реНрдг рд░рд╣реЗрдВ
  • рдкреАрдПрдЪрдкреА рд╕рдВрд╕реНрдХрд░рдг: 7.1.23
  • рд▓рд╛рд░рд╡реЗрд▓ рд╕рдВрд╕реНрдХрд░рдг: 5.6
  • рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг: 3.1.2

рд╡рд┐рд╡рд░рдг

рдЬрдм рдореИрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ (рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ .xlsx, .ods рдпрд╛ .csv рд╣реИ) рдФрд░ рдЦрдВрдб рдкрдврд╝рдиреЗ рдХреЛ рдХрддрд╛рд░рдмрджреНрдз рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореЗрд░реА рдЕрд╕рдлрд▓_рдЬреЙрдмреНрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
InvalidArgumentException: File "/tmp/SWQF2KfyI6BP0k1x" does not exist. in /home/miguel/www/html/proliste/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php:137

рдкреНрд░рдЬрдирди рдХреЗ рдЪрд░рдг

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕реЗрд▓ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдкреБрдирд░реБрддреНрдкрд╛рджрди рднрдВрдбрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░:

рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА рдХрд┐ рдХрд╛рдо рдмрд┐рдирд╛ рдЕрд╕рдлрд▓рддрд╛ рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдЧрд░ рдореИрдВ рдиреМрдХрд░реА рдХреЛ рдХрддрд╛рд░рдмрджреНрдз рдирд╣реАрдВ рдХрд░рддрд╛ рддреЛ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░:
Fail_jobs рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕:

InvalidArgumentException: File "/tmp/SWQF2KfyI6BP0k1x" does not exist. in /home/miguel/www/html/proliste/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php:137
Stack trace:
#0 /home/miguel/www/html/proliste/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php(389): PhpOffice\PhpSpreadsheet\Shared\File::assertFile('/tmp/SWQF2KfyI6...')
#1 /home/miguel/www/html/proliste/vendor/maatwebsite/excel/src/Jobs/ReadChunk.php(82): PhpOffice\PhpSpreadsheet\Reader\Xlsx->load('/tmp/SWQF2KfyI6...')
#2 [internal function]: Maatwebsite\Excel\Jobs\ReadChunk->handle()
#3 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): call_user_func_array(Array, Array)
#4 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#5 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#6 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Container/Container.php(564): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#7 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(94): Illuminate\Container\Container->call(Array)
#8 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(Maatwebsite\Excel\Jobs\ReadChunk))
#9 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Maatwebsite\Excel\Jobs\ReadChunk))
#10 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(98): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#11 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(49): Illuminate\Bus\Dispatcher->dispatchNow(Object(Maatwebsite\Excel\Jobs\ReadChunk), false)
#12 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(83): Illuminate\Queue\CallQueuedHandler->call(Object(Illuminate\Queue\Jobs\DatabaseJob), Array)
#13 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(326): Illuminate\Queue\Jobs\Job->fire()
#14 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(276): Illuminate\Queue\Worker->process('database', Object(Illuminate\Queue\Jobs\DatabaseJob), Object(Illuminate\Queue\WorkerOptions))
#15 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(118): Illuminate\Queue\Worker->runJob(Object(Illuminate\Queue\Jobs\DatabaseJob), 'database', Object(Illuminate\Queue\WorkerOptions))
#16 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(101): Illuminate\Queue\Worker->daemon('database', 'default', Object(Illuminate\Queue\WorkerOptions))
#17 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(85): Illuminate\Queue\Console\WorkCommand->runWorker('database', 'default')
#18 [internal function]: Illuminate\Queue\Console\WorkCommand->handle()
#19 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): call_user_func_array(Array, Array)
#20 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#21 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#22 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Container/Container.php(564): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#23 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Console/Command.php(179): Illuminate\Container\Container->call(Array)
#24 /home/miguel/www/html/proliste/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#25 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Console/Command.php(166): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#26 /home/miguel/www/html/proliste/vendor/symfony/console/Application.php(886): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#27 /home/miguel/www/html/proliste/vendor/symfony/console/Application.php(262): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#28 /home/miguel/www/html/proliste/vendor/symfony/console/Application.php(145): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#29 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Console/Application.php(89): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#30 /home/miguel/www/html/proliste/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(122): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#31 /home/miguel/www/html/proliste/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#32 {main}

рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА

рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд╕реЗ рддреНрд░реБрдЯрд┐ PhpSpreadsheet рд╕реЗ рдЖрддреА рдкреНрд░рддреАрдд /tmp рдлрд╝реЛрд▓реНрдбрд░ 777 рд╣реИ, рдФрд░ рдореЗрд░реА php.ini рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдирд╣реАрдВ рдмрджрд▓реА рд╣реИ (рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЕрдкрд▓реЛрдб_рдореИрдХреНрд╕_рдлрд╛рдЗрд▓рд╕рд╛рдЗрдЬ рдкреЛрд╕реНрдЯ_рдореИрдХреНрд╕_рд╕рд╛рдЗрдЬ)ред

рдореЗрд░реЗ рд╕рдВрдкрд░реНрдХрдЖрдпрд╛рдд рд╡рд░реНрдЧ:

<?php

namespace App\Imports;

use App\Contact;
use App\Rubric;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\Importable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Maatwebsite\Excel\Concerns\WithBatchInserts;
use Maatwebsite\Excel\Concerns\WithChunkReading;
use Maatwebsite\Excel\Concerns\WithHeadingRow;

class ContactsImport implements ToModel, WithBatchInserts, WithChunkReading, WithHeadingRow, ShouldQueue
{
    use Importable;

    /**
    * <strong i="10">@param</strong> array $row
    *
    * <strong i="11">@return</strong> \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {
        if (isset($row['rubrique'])) {
            $rubric = Rubric::firstOrCreate(['name' => $row['rubrique']]);
        } else {
            $rubric = Rubric::where('name', 'AUTRE')->first();
        }

        $area_id = intval(substr($row['code_postal'], 0, 2)) !== 0 ? intval(substr($row['code_postal'], 0, 2)) : 1;

        return new Contact([
            'name' => $row['nom'],
            'address' => $row['adresse'],
            'postal_code' => $row['code_postal'],
            'city' => $row['ville'],
            'phone_number' => $row['telephone'],
            'fax_number' => $row['fax'],
            'email' => $row['email'],
            'rubric_id' => $rubric->id,
            'area_id' => $area_id
        ]);
    }

    public function batchSize(): int
    {
        return 1000;
    }

    public function chunkSize(): int
    {
        return 1000;
    }
}

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЕрдкрдиреЗ рд╕рдВрдЧреНрд░рд╣рдг рдлрд╝реЛрд▓реНрдбрд░ рдЬреИрд╕реЗ temp_path (https://github.com/Maatwebsite/Laravel-Excel/blob/3.1/config/excel.php#L28) рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕рднреА 21 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдп @MLouis ,

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдХреЛрдб рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ?
рдЖрдк рдЖрдпрд╛рдд рдпреЛрдЧреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдирд┐рдпрдВрддреНрд░рдХ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
(new ContactsImport)->queue('file.ext');

рдХреГрдкрдпрд╛ рдЖрдпрд╛рдд рдпреЛрдЧреНрдп рджреЗрдЦреЗрдВ

рдпрджрд┐ рдЗрд╕рдХреЗ рдмрд╛рдж рднреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдХреЛрдб рднреА рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред

рд╣рд╛рдп @GlennM , рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдореЗрд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдореИрдВрдиреЗ рджреЛрдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:

Excel::import(new ContactsImport, $request->file('liste'));
// and
(new ContactsImport)->queue($request->file('liste'));

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдмрдорд┐рдЯ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд░реНрдХ рдЖрдпрд╛рдд рдкрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:

$fileName = Str::uuid() . '.' . $request->file('liste')->getClientOriginalExtension();
$request->file('liste')->storeAs('listes', $fileName);
Excel::import(new ContactsImport, 'listes/' . $fileName);
// also tried with
(new ContactsImport)->queue('listes/' . $fileName);

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ InvalidArgumentException: File "/tmp/whatever" does not exist. in /home/miguel/www/html/proliste/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php:137

рдореЗрд░реА рд╕реВрдЪреА рдирд┐рдпрдВрддреНрд░рдХ:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Imports\ContactsImport;
use App\Exports\ContactsExport;
use App\Contact;
use App\Rubric;
use App\Area;
use App\Cart;
use Excel;
use DB;
use App\Http\Requests\ListRequest;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;

class ListController extends Controller
{
    public function import(Request $request)
    {
        $request->validate([
            'liste' => 'required'
        ]);

        $fileName = Str::uuid() . '.' . $request->file('liste')->getClientOriginalExtension();
        $request->file('liste')->storeAs('listes', $fileName);

        (new ContactsImport)->queue('listes/' . $fileName);

        return back()->with('status', 'Liste ajout├йe avec succ├иs');
    }
}

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

public function import(Request $request)
{
    (new ContactsImport)->queue($request->file('liste'));

    return back()->with('status', 'Liste ajout├йe avec succ├иs');
}

рдПрдлрд╡рд╛рдИрдЖрдИ, рдореИрдВ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рдореЗрд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рд╡рд┐рдзрд┐ рд╣реИ:

public function process(Request $request)
{
    (new UsersImport)->queue($request->file('dataset'));

    return back()->with('success', 'All good!');
}

рдФрд░ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдпрд╛рдд рд╡рд░реНрдЧ:

<?php

namespace App\Imports;

use App\User;
use Illuminate\Contracts\Queue\ShouldQueue;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithBatchInserts;
use Maatwebsite\Excel\Concerns\WithChunkReading;
use Maatwebsite\Excel\Concerns\WithHeadingRow;

class UsersImport implements ToModel, WithHeadingRow, WithBatchInserts, WithChunkReading, ShouldQueue
{
    use Importable;

    /**
    * <strong i="13">@param</strong> array $row
    *
    * <strong i="14">@return</strong> \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {
        return new User([
            'name' => $row['name'],
            'email' => $row['email'],
            'password' => $row['id'],
        ]);
    }

    /**
     * <strong i="15">@return</strong> int
     */
    public function batchSize(): int
    {
        return 1000;
    }

    /**
     * <strong i="16">@return</strong> int
     */
    public function chunkSize(): int
    {
        return 1000;
    }
}

рдореИрдВ рдЬреЛрдбрд╝рдиреЗ / рд╣рдЯрд╛рдиреЗ рдХреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА WithHeadingRow , WithBatchInserts , WithChunkReading , Importable , рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ ToCollection рдХреЗ рдмрдЬрд╛рдп ToModel рд╕рдлрд▓рддрд╛ рдирд╣реАрдВ рдорд┐рд▓реА . рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдиреМрдХрд░реА рдХреЛ рдХрддрд╛рд░рдмрджреНрдз рдирд╣реАрдВ рдХрд░рддрд╛ред

рдФрд░ рдореБрдЭреЗ рдХрддрд╛рд░рдмрджреНрдз рдиреМрдХрд░реА рдХреЗ рд╕рд╛рде рд╕реВрдЪреА рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдЖрдпрд╛рдд рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рд╢рд╛рдпрдж рд╕рдорд╕реНрдпрд╛ рдореЗрд░реЗ рджреЗрд╡ рд╕рд░реНрд╡рд░ рдХреЗ рдЧрд▓рдд рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ рдЖрддреА рд╣реИ?

рд╢рд╛рдпрдж рд╕рдорд╕реНрдпрд╛ рдореЗрд░реЗ рджреЗрд╡ рд╕рд░реНрд╡рд░ рдХреЗ рдЧрд▓рдд рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ рдЖрддреА рд╣реИ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВрдиреЗ PHP 7.1 / Laravel 5.6 рдФрд░ PHP 7.2 / Laravel 5.7 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ T oModel , WithHeadingRow , WithBatchInserts , WithChunkReading рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред ShouldQueue рдФрд░ Importable

рдпрджрд┐ рдЖрдк рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд░реВрдк рд╕реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╕реНрддреГрдд рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдЗрд╕рдХреА рддрддреНрдХрд╛рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЖрдзрд╛рд░ рдкрд░ рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рд╕рд╣рд╛рдпрддрд╛ рдкреГрд╖реНрда рдХреЛ рджреЗрдЦреЗрдВред

рдореИрдВ рдПрдХ рд▓реАрдб рдкрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ: 150K+ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдПрдХ рдХрддрд╛рд░рдмрджреНрдз рдирд┐рд░реНрдпрд╛рдд рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдиреМрдХрд░реА рдореБрдЭреЗ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рджреЗрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реА, рд▓реЗрдХрд┐рди рддреБрд░рдВрдд рдЖрдпрд╛рдд рдХреА рддрд░рд╣ рдирд╣реАрдВ, 20 AppendQueryToSheet рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рджред
рддреЛ рдпрд╣ рдЖрдХрд╛рд░ рд╕реАрдорд╛ рдХреА рддрд░рд╣ рдореЗрд░реЗ /tmp рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВ рдбреЗрдмрд┐рдпрди 9 рдкрд░ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ 3 рд╡рд┐рднрд╛рдЬрди рд╣реИрдВ: / ( /tmp ), /home рдФрд░ swap , рдпрд╣ рдПрдХ рд╡рд┐рднрд╛рдЬрди рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реИ рд╕реАрдорд╛

рдЕрдЧрд░ рдореБрдЭреЗ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдЕрдкрдбреЗрдЯ рджреВрдВрдЧрд╛! :рдкреНрд░рд╛рд░реНрдердирд╛:

__рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ__
рдХреНрдпрд╛ рдореБрдЭреЗ [рдмрдЧ] рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ [QUESTION] рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдЕрдкрдиреЗ рд╕рдВрдЧреНрд░рд╣рдг рдлрд╝реЛрд▓реНрдбрд░ рдЬреИрд╕реЗ temp_path (https://github.com/Maatwebsite/Laravel-Excel/blob/3.1/config/excel.php#L28) рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж @patrickbrouwers , рдЗрд╕рдиреЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛, рдореИрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ!

@patrickbrouwers рдХреЙрдиреНрдлрд┐рдЧ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рдХреЛрдИ temp_path рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдЖрдк рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@sharjeelz рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рд╣реИ рддреЛ рджреЗрдЦреЗрдВ: https://github.com/Maatwebsite/Laravel-Excel/blob/3.1/config/excel.php#L167 рд╡рд░реНрддрдорд╛рди рдореЗрдВ temp_path рдкрд░ рдкреБрд░рд╛рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдордмреИрдХ рд╣реИ рд╡рд┐рдиреНрдпрд╛рд╕

рдЕрд░реЗ рджреЛрд╕реНрддреЛрдВ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдкреБрд░рд╛рдирд╛ рдореБрджреНрджрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореЗрд░реЗ рд╕рд╣рдХрд░реНрдореА рдФрд░ рдореИрдВ рджреЛрдиреЛрдВ рдПрдХ рд╣реА рдХреЛрдбрдмреЗрд╕ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдореБрдЭреЗ "рдлрд╛рдЗрд▓ рдПрдХреНрд╕ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ" рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рд╡рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд╕реНрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рднреА рдореИрдВ config/local_path рдмрджрд▓рддрд╛ рд╣реВрдВ, рддрдм рднреА рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реВрдВ рдЬреЛ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреА рд╣реИрдВред рд╣рдо рджреЛрдиреЛрдВ рдЕрдкрдиреЗ Laravel рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ macbooks рдкрд░ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ lib рд╕рдВрд╕реНрдХрд░рдг 3.1.17 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдлрд╝рд╛рдЗрд▓ рдирд╛рдо C:UsersAshimAppDataLocalTemplaravel-excel-K6OeXpSQuAARlI0UrSeOAkFZ0kELq0Ax.xls рдХреЛ OLE рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ

рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рд╣реИрд▓реЛ, рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдкреНрд░рд╢реНрди рд╣реИ: рдпрд╣ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрдпрд╛рдд рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рднреЗрдЬреЗ рдЧрдП рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реЗ рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреНрдпреЛрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╡рд╣ рдЬрд╛рдирдХрд╛рд░реА рдкрдврд╝рддрд╛ рд╣реИ?

````
[2020-04-17 15:15:26] рд╕реНрдерд╛рдиреАрдпредрддреНрд░реБрдЯрд┐: рдлрд╝рд╛рдЗрд▓ "/tmp/laravel-excel-rKsJKI2Clu2sEV3OqMtPngacRRZd8iJM.xlsx" рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред {"рдЕрдкрд╡рд╛рдж":"[рдСрдмреНрдЬреЗрдХреНрдЯ] (рдЕрдорд╛рдиреНрдп рдЖрд░реНрдЧреНрдпреВрдореЗрдВрдЯ рдПрдХреНрд╕реЗрдкреНрд╢рди (рдХреЛрдб: 0)): рдлрд╛рдЗрд▓ "/tmp/laravel-excel-rKsJKI2Clu2sEV3OqMtPngacRRZd8iJM.xlsx" рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред /var/www/html/sites/dashboard-imprensa/vendor/ рдкрд░ phpoffice/phpspreadsheet/src/Phpрд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ/рд╕рд╛рдЭрд╛/рдлрд╝рд╛рдЗрд▓.php:137)
[рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕]

0 /var/www/html/sites/dashboard-imprensa/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php(327): PhpOffice\PhpSpreadsheet\Shared\File::assertFile('/tmp/laravel- рднреВрддрдкреВрд░реНрд╡...')

1 /var/www/html/sites/dashboard-imprensa/vendor/maatwebsite/excel/src/Jobs/ReadChunk.php(118): PhpOffice\PhpSpreadsheet\Reader\Xlsx->load('/tmp/laravel-ex. ..')

2 [рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдп]: Maatwebsite\Excel\Jobs\ReadChunk->handle(Object(Maatwebsite\Excel\Transactions\DbTransactionHandler))

3 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(32): call_user_func_array(Array, Array)

4 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Container/Util.php(36): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()

5 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(90): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))

6 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(34): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application) , рд╕рд░рдгреА, рд╡рд╕реНрддреБ (рдмрдВрдж))

7 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Container/Container.php(592): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application) , рдРрд░реЗ, рдРрд░реЗ, рдиреНрдпреВрд▓)

8 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(94): Illuminate\Container\Container->call(Array)

9 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{рдХреНрд▓реЛрдЬрд░}(рдСрдмреНрдЬреЗрдХреНрдЯ( рдорд╛рдЯрд╡реЗрдмрд╕рд╛рдЗрдЯ\рдПрдХреНрд╕реЗрд▓\рдЬреЙрдмреНрд╕\рд░реАрдбрдЪрдВрдХ))

10 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{рдХреНрд▓реЛрдЬрд░}(рдСрдмреНрдЬреЗрдХреНрдЯ( рдорд╛рдЯрд╡реЗрдмрд╕рд╛рдЗрдЯ\рдПрдХреНрд╕реЗрд▓\рдЬреЙрдмреНрд╕\рд░реАрдбрдЪрдВрдХ))

11 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(98): Illuminate\Pipeline\Pipeline->then(Object(Closure))

12 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(83): Illuminate\Bus\Dispatcher->dispatchNow(Object(Maatwebsite\Excel\Jobs\ рд░реАрдбрдЪрдВрдХ), рдЭреВрдард╛)

13 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Queue\CallQueuedHandler->Illuminate\Queue\{рдХреНрд▓реЛрдЬрд░}(рдСрдмреНрдЬреЗрдХреНрдЯ( рдорд╛рдЯрд╡реЗрдмрд╕рд╛рдЗрдЯ\рдПрдХреНрд╕реЗрд▓\рдЬреЙрдмреНрд╕\рд░реАрдбрдЪрдВрдХ))

14 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{рдХреНрд▓реЛрдЬрд░}(рдСрдмреНрдЬреЗрдХреНрдЯ( рдорд╛рдЯрд╡реЗрдмрд╕рд╛рдЗрдЯ\рдПрдХреНрд╕реЗрд▓\рдЬреЙрдмреНрд╕\рд░реАрдбрдЪрдВрдХ))

15 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(85): Illuminate\Pipeline\Pipeline->then(Object(Closure))

16 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(59): Illuminate\Queue\CallQueuedHandler->dispatchThroughMiddleware(Object(Illuminate\Queue\Jobs\) DatabaseJob), рдСрдмреНрдЬреЗрдХреНрдЯ (Maatwebsite\Excel\Jobs\ReadChunk))

17 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(98): Illuminate\Queue\CallQueuedHandler->call(Object(Illuminate\Queue\ рдЬреЙрдмреНрд╕\рдбреЗрдЯрд╛рдмреЗрд╕рдЬреЙрдм), рдРрд░реЗ)

18 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(356): Illuminate\Queue\Jobs\Job->fire()

19 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(306): Illuminate\Queue\Worker->process('database', Object(Illuminate\ Queue\Jobs\DatabaseJob), Object(Illuminate\Queue\WorkerOptions))

20 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(132): Illuminate\Queue\Worker->runJob(Object(Illuminate\Queue\Jobs\) рдбреЗрдЯрд╛рдмреЗрд╕рдЬреЙрдм), 'рдбреЗрдЯрд╛рдмреЗрд╕', рдСрдмреНрдЬреЗрдХреНрдЯ (рдЗрд▓реНрдпреВрдорд┐рдиреЗрдЯ \ рдХреНрдпреВрдИ \ рд╡рд░реНрдХрд░рдСрдкреНрд╢рди))

21 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(112): Illuminate\Queue\Worker->daemon('database', 'default ', рдСрдмреНрдЬреЗрдХреНрдЯ (рд░реЛрд╢рдиреА \ рдХрддрд╛рд░ \ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдк))

22 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(96): Illuminate\Queue\Console\WorkCommand->runWorker('database', 'рдЪреВрдХ рдЬрд╛рдирд╛')

23 [рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдп]: рд░реЛрд╢рдиреА\Queue\Console\WorkCommand->handle()

24 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(32): call_user_func_array(Array, Array)

25 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Container/Util.php(36): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()

26 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(90): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))

27 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(34): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application) , рд╕рд░рдгреА, рд╡рд╕реНрддреБ (рдмрдВрдж))

28 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Container/Container.php(592): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application) , рдРрд░реЗ, рдРрд░реЗ, рдиреНрдпреВрд▓)

29 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Console/Command.php(134): Illuminate\Container\Container->call(Array)

30 /var/www/html/sites/dashboard-imprensa/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput) , рдСрдмреНрдЬреЗрдХреНрдЯ (рд░реЛрд╢рдиреА \ рдХрдВрд╕реЛрд▓ \ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯрд╛рдЗрд▓))

31 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Console/Command.php(121): Symfony\Component\Console\Command\Command->run(Object(Symfony\ рдШрдЯрдХ \ рдХрдВрд╕реЛрд▓ \ рдЗрдирдкреБрдЯ \ ArgvInput), рдСрдмреНрдЬреЗрдХреНрдЯ (рд░реЛрд╢рдиреА \ рдХрдВрд╕реЛрд▓ \ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯрд╛рдЗрд▓))

32 /var/www/html/sites/dashboard-imprensa/vendor/symfony/console/Application.php(912): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object (рд╕рд┐рдореНрдлрдиреА \ рдШрдЯрдХ \ рдХрдВрд╕реЛрд▓ \ рдЖрдЙрдЯрдкреБрдЯ \ рдХрдВрд╕реЛрд▓рдСрдЯрдкреБрдЯ))

33 /var/www/html/sites/dashboard-imprensa/vendor/symfony/console/Application.php(264): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), рдСрдмреНрдЬреЗрдХреНрдЯ (рд╕рд┐рдореНрдлрдиреА \ рдШрдЯрдХ \ рдХрдВрд╕реЛрд▓ \ рдЗрдирдкреБрдЯ \ ArgvInput), рдСрдмреНрдЬреЗрдХреНрдЯ (рд╕рд┐рдореНрдлрдиреА \ рдШрдЯрдХ \ рдХрдВрд╕реЛрд▓ \ рдЖрдЙрдЯрдкреБрдЯ \ рдХрдВрд╕реЛрд▓рдСрдЯрдкреБрдЯ))

34 /var/www/html/sites/dashboard-imprensa/vendor/symfony/console/Application.php(140): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput) , рд╡рд╕реНрддреБ (рд╕рд┐рдореНрдлрдиреА \ рдШрдЯрдХ \ рдХрдВрд╕реЛрд▓ \ рдЖрдЙрдЯрдкреБрдЯ \ рдХрдВрд╕реЛрд▓рдСрдЯрдкреБрдЯ))

35 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Console/Application.php(93): Symfony\Component\Console\Application->run(Object(Symfony\Component\ рдХрдВрд╕реЛрд▓ \ рдЗрдирдкреБрдЯ \ ArgvInput), рдСрдмреНрдЬреЗрдХреНрдЯ (рд╕рд┐рдореНрдлрдиреА \ рдШрдЯрдХ \ рдХрдВрд╕реЛрд▓ \ рдЖрдЙрдЯрдкреБрдЯ \ рдХрдВрд╕реЛрд▓рдСрдЯрдкреБрдЯ))

36 /var/www/html/sites/dashboard-imprensa/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(130): Illuminate\Console\Application->run(Object(Symfony\Component\ рдХрдВрд╕реЛрд▓ \ рдЗрдирдкреБрдЯ \ ArgvInput), рдСрдмреНрдЬреЗрдХреНрдЯ (рд╕рд┐рдореНрдлрдиреА \ рдШрдЯрдХ \ рдХрдВрд╕реЛрд▓ \ рдЖрдЙрдЯрдкреБрдЯ \ рдХрдВрд╕реЛрд▓рдСрдЯрдкреБрдЯ))

37 /var/www/html/sites/dashboard-imprensa/artisan(37): рдЗрд▓реНрдпреВрдорд┐рдиреЗрдЯ\рдлрд╛рдЙрдВрдбреЗрд╢рди\рдХрдВрд╕реЛрд▓\рдХрд░реНрдиреЗрд▓->рд╣реИрдВрдбрд▓(рдСрдмреНрдЬреЗрдХреНрдЯ(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console) \рдЖрдЙрдЯрдкреБрдЯ\ConsoleOutput))

38 {рдореБрдЦреНрдп}

"}
````

рдпрд╣ рд╡рд╣ рддреНрд░реБрдЯрд┐ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣реА рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рднреЗрдЬреА рд╡рд╣ 'temp/12020-04.xlsx' рдереАред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЬрд╛рдБрдЪ рдХрд░ рд▓реА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдмрдирд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрддрд╛ рд╣реИ?

рдПрдХ рдЕрд▓рдЧ рдЕрд╕реНрдерд╛рдпреА рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ https://github.com/Maatwebsite/Laravel-Excel/blob/3.1/config/excel.php#L166

рд╣рд╛рдп @patrickbrouwers , рдЖрдкрдХреА рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ :(

$header = (new HeadingRowImport)->toArray($request->file('arquivo'))[0][0];

$file = Storage::putFileAs(
    'temp',
    $request->file('arquivo'),
    $request->input('dashboard_id') . str_replace("/", "-", $request->input('ano_mes')) . '.' . pathinfo($request->file('arquivo')->getClientOriginalName())['extension']
);

if ($request->input('acao') == "import") {
    Excel::import((new DadosImport($request->input('ano_mes'), $request->input('dashboard_id'), $header, $file, true)), $file);
} else {
    Excel::import((new DadosImport($request->input('ano_mes'), $request->input('dashboard_id'), $header, $file)), $file);
}

рдпрд╣ рдореЗрд░рд╛ рдЖрдпрд╛рдд рдХрд╛рд░реНрдп рд╣реИ, рдпрд╣ рдХрд╛рдлреА рдорд╛рдирдХ рд╣реИред рдлрд╝рд╛рдЗрд▓ рд╕рд╣реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬреА рдЧрдИ рд╣реИред рдореИрдВрдиреЗ public_path($file) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдХреНрдпрд╛ рдЖрдпрд╛рдд рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рд╕рдм рдХреБрдЫ рдкреБрдирдГ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж :))

рдореИрдВрдиреЗ рдирд┐рд░реНрдпрд╛рдд рдПрдХреНрд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рдиреМрдХрд░реА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдФрд░ рдиреМрдХрд░реА рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рдЕрдкрд╡рд╛рдж рджрд┐рдЦрд╛рддреА рд╣реИ:
рддреНрд░реБрдЯрд┐ рдЕрдкрд╡рд╛рдж: fopen(/var/www/html/biomaze.ir/storage/framework/laravel-excel/laravel-excel-85fvUcwqDwshFsD4o5PWwtamG83wnzG6): рд╕реНрдЯреНрд░реАрдо рдЦреЛрд▓рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓: /var/www/html/biomaze.ir/vendor рдореЗрдВ рдЕрдиреБрдорддрд┐ рдЕрд╕реНрд╡реАрдХреГрдд /phpoffice/phpspreadsheet/src/Phpрд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ/рд░рд╛рдЗрдЯрд░/рдмреЗрд╕рд░рд╛рдЗрдЯрд░ред php:111

рдХреГрдкрдпрд╛ рдорджрдж рдХрд░реЗрдВ?рдХреГрдкрдпрд╛

storage рдкрд░ рд╕реНрд╡рд╛рдореА рдФрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ
sudo chown -R www-data:<your_username> storage/ && sudo chmod -R g+w storage/

рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓рддреА рд╣реИред

рдореИрдВ рд╣реЛрдорд╕реНрдЯреЗрдб рдХреЗ рднреАрддрд░ рдЕрдкрдирд╛ рджреЗрд╡ рдПрдирд╡реА рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдареАрдХ рдмрдирд╛рдИ рдЧрдИ рд╣реИ (рдЗрд╕рд▓рд┐рдП рдРрдк рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рд╕реАрдПрд╕рд╡реА рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ), рд╣рд╛рд▓рд╛рдВрдХрд┐ phpspreadsheet рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рдЪрд▓рддреЗ рд╕рдордп рдлрд╝рд╛рдЗрд▓ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ:

InvalidArgumentException {#1344 #message: "File "/home/vagrant/code/storage/app/data-imports/laravel-excel-YNpPHnBtKZXaXKIbR68goCYM5qLlzUxt.csv" does not exist." #code: 0 #file: "./vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php" #line: 135

рдХрддрд╛рд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реАрдбрдЪрдВрдХ рдиреМрдХрд░реА рд╕реЗ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝реЗрдЧреАред рдЕрдЧрд░ рдореИрдВ рдЯрд┐рдВрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕ рдкрде рдкрд░ file_exists() рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдлрд╝рд╛рдЗрд▓ рд╡рд╣рд╛рдВ рд╣реИред

рдХрд┐рд╕реА рдиреЗ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛?

рддреЛ, рд╕рдорд╕реНрдпрд╛ рдХрддрд╛рд░ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд░рд╣реА рдереА

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрддрд╛рд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдпреЛрдирд┐ рдХреЗ рднреАрддрд░ рд╕реЗ рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдЖрд╡рд╛рд░рд╛ ssh
рд╕реАрдбреА рдХреЛрдб
php рдХрд╛рд░реАрдЧрд░ рдХрддрд╛рд░:рд╕реБрдиреЛ

рдореАрдард╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

https://github.com/Maatwebsite/Laravel-Excel/blob/3.1/config/excel.php#L166

рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ @patrickbrouwers рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдпрд╣ рдореЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рд╣реИ

`<?php

use Maatwebsite\Excel\Excel;

return [
    'exports' => [

    /*
    |--------------------------------------------------------------------------
    | Chunk size
    |--------------------------------------------------------------------------
    |
    | When using FromQuery, the query is automatically chunked.
    | Here you can specify how big the chunk should be.
    |
    */
    'chunk_size'             => 1000,

    /*
    |--------------------------------------------------------------------------
    | Pre-calculate formulas during export
    |--------------------------------------------------------------------------
    */
    'pre_calculate_formulas' => false,

    /*
    |--------------------------------------------------------------------------
    | Enable strict null comparison
    |--------------------------------------------------------------------------
    |
    | When enabling strict null comparison empty cells ('') will
    | be added to the sheet.
    */
    'strict_null_comparison' => false,

    /*
    |--------------------------------------------------------------------------
    | CSV Settings
    |--------------------------------------------------------------------------
    |
    | Configure e.g. delimiter, enclosure and line ending for CSV exports.
    |
    */
    'csv'                    => [
        'delimiter'              => ',',
        'enclosure'              => '"',
        'line_ending'            => PHP_EOL,
        'use_bom'                => false,
        'include_separator_line' => false,
        'excel_compatibility'    => false,
    ],

    /*
    |--------------------------------------------------------------------------
    | Worksheet properties
    |--------------------------------------------------------------------------
    |
    | Configure e.g. default title, creator, subject,...
    |
    */
    'properties'             => [
        'creator'        => '',
        'lastModifiedBy' => '',
        'title'          => '',
        'description'    => '',
        'subject'        => '',
        'keywords'       => '',
        'category'       => '',
        'manager'        => '',
        'company'        => '',
    ],
],

'imports'            => [

    /*
    |--------------------------------------------------------------------------
    | Read Only
    |--------------------------------------------------------------------------
    |
    | When dealing with imports, you might only be interested in the
    | data that the sheet exists. By default we ignore all styles,
    | however if you want to do some logic based on style data
    | you can enable it by setting read_only to false.
    |
    */
    'read_only' => true,

    /*
    |--------------------------------------------------------------------------
    | Ignore Empty
    |--------------------------------------------------------------------------
    |
    | When dealing with imports, you might be interested in ignoring
    | rows that have null values or empty strings. By default rows
    | containing empty strings or empty values are not ignored but can be
    | ignored by enabling the setting ignore_empty to true.
    |
    */
    'ignore_empty' => false,

    /*
    |--------------------------------------------------------------------------
    | Heading Row Formatter
    |--------------------------------------------------------------------------
    |
    | Configure the heading row formatter.
    | Available options: none|slug|custom
    |
    */
    'heading_row' => [
        'formatter' => 'slug',
    ],

    /*
    |--------------------------------------------------------------------------
    | CSV Settings
    |--------------------------------------------------------------------------
    |
    | Configure e.g. delimiter, enclosure and line ending for CSV imports.
    |
    */
    'csv'         => [
        'delimiter'        => ',',
        'enclosure'        => '"',
        'escape_character' => '\\',
        'contiguous'       => false,
        'input_encoding'   => 'UTF-8',
    ],

    /*
    |--------------------------------------------------------------------------
    | Worksheet properties
    |--------------------------------------------------------------------------
    |
    | Configure e.g. default title, creator, subject,...
    |
    */
    'properties'  => [
        'creator'        => '',
        'lastModifiedBy' => '',
        'title'          => '',
        'description'    => '',
        'subject'        => '',
        'keywords'       => '',
        'category'       => '',
        'manager'        => '',
        'company'        => '',
    ],

],

/*
|--------------------------------------------------------------------------
| Extension detector
|--------------------------------------------------------------------------
|
| Configure here which writer/reader type should be used when the package
| needs to guess the correct type based on the extension alone.
|
*/
'extension_detector' => [
    'xlsx'     => Excel::XLSX,
    'xlsm'     => Excel::XLSX,
    'xltx'     => Excel::XLSX,
    'xltm'     => Excel::XLSX,
    'xls'      => Excel::XLS,
    'xlt'      => Excel::XLS,
    'ods'      => Excel::ODS,
    'ots'      => Excel::ODS,
    'slk'      => Excel::SLK,
    'xml'      => Excel::XML,
    'gnumeric' => Excel::GNUMERIC,
    'htm'      => Excel::HTML,
    'html'     => Excel::HTML,
    'csv'      => Excel::CSV,
    'tsv'      => Excel::TSV,

    /*
    |--------------------------------------------------------------------------
    | PDF Extension
    |--------------------------------------------------------------------------
    |
    | Configure here which Pdf driver should be used by default.
    | Available options: Excel::MPDF | Excel::TCPDF | Excel::DOMPDF
    |
    */
    'pdf'      => Excel::DOMPDF,
],

/*
|--------------------------------------------------------------------------
| Value Binder
|--------------------------------------------------------------------------
|
| PhpSpreadsheet offers a way to hook into the process of a value being
| written to a cell. In there some assumptions are made on how the
| value should be formatted. If you want to change those defaults,
| you can implement your own default value binder.
|
| Possible value binders:
|
| [x] Maatwebsite\Excel\DefaultValueBinder::class
| [x] PhpOffice\PhpSpreadsheet\Cell\StringValueBinder::class
| [x] PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder::class
|
*/
'value_binder' => [
    'default' => Maatwebsite\Excel\DefaultValueBinder::class,
],

'cache' => [
    /*
    |--------------------------------------------------------------------------
    | Default cell caching driver
    |--------------------------------------------------------------------------
    |
    | By default PhpSpreadsheet keeps all cell values in memory, however when
    | dealing with large files, this might result into memory issues. If you
    | want to mitigate that, you can configure a cell caching driver here.
    | When using the illuminate driver, it will store each value in a the
    | cache store. This can slow down the process, because it needs to
    | store each value. You can use the "batch" store if you want to
    | only persist to the store when the memory limit is reached.
    |
    | Drivers: memory|illuminate|batch
    |
    */
    'driver'     => 'memory',

    /*
    |--------------------------------------------------------------------------
    | Batch memory caching
    |--------------------------------------------------------------------------
    |
    | When dealing with the "batch" caching driver, it will only
    | persist to the store when the memory limit is reached.
    | Here you can tweak the memory limit to your liking.
    |
    */
    'batch'     => [
        'memory_limit' => 60000,
    ],

    /*
    |--------------------------------------------------------------------------
    | Illuminate cache
    |--------------------------------------------------------------------------
    |
    | When using the "illuminate" caching driver, it will automatically use
    | your default cache store. However if you prefer to have the cell
    | cache on a separate store, you can configure the store name here.
    | You can use any store defined in your cache config. When leaving
    | at "null" it will use the default store.
    |
    */
    'illuminate' => [
        'store' => null,
    ],
],

/*
|--------------------------------------------------------------------------
| Transaction Handler
|--------------------------------------------------------------------------
|
| By default the import is wrapped in a transaction. This is useful
| for when an import may fail and you want to retry it. With the
| transactions, the previous import gets rolled-back.
|
| You can disable the transaction handler by setting this to null.
| Or you can choose a custom made transaction handler here.
|
| Supported handlers: null|db
|
*/
'transactions' => [
    'handler' => 'db',
],

'temporary_files' => [

    /*
    |--------------------------------------------------------------------------
    | Local Temporary Path
    |--------------------------------------------------------------------------
    |
    | When exporting and importing files, we use a temporary file, before
    | storing reading or downloading. Here you can customize that path.
    |
    */
    'local_path'          => storage_path('framework/laravel-excel'),

    /*
    |--------------------------------------------------------------------------
    | Remote Temporary Disk
    |--------------------------------------------------------------------------
    |
    | When dealing with a multi server setup with queues in which you
    | cannot rely on having a shared local temporary path, you might
    | want to store the temporary file on a shared disk. During the
    | queue executing, we'll retrieve the temporary file from that
    | location instead. When left to null, it will always use
    | the local path. This setting only has effect when using
    | in conjunction with queued imports and exports.
    |
    */
    'remote_disk'         => null,
    'remote_prefix'       => null,

    /*
    |--------------------------------------------------------------------------
    | Force Resync
    |--------------------------------------------------------------------------
    |
    | When dealing with a multi server setup as above, it's possible
    | for the clean up that occurs after entire queue has been run to only
    | cleanup the server that the last AfterImportJob runs on. The rest of the server
    | would still have the local temporary file stored on it. In this case your
    | local storage limits can be exceeded and future imports won't be processed.
    | To mitigate this you can set this config value to be true, so that after every
    | queued chunk is processed the local temporary file is deleted on the server that
    | processed it.
    |
    */
    'force_resync_remote' => null,
    ],
];

`

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

muhghazaliakbar picture muhghazaliakbar  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

octoxan picture octoxan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alejandri picture alejandri  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thearabbit picture thearabbit  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

matthewslouismarie picture matthewslouismarie  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ