HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/ipsremont-demo/app/Console/Commands/ImportImages.php
<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;
use Symfony\Component\Console\Command\Command as CommandAlias;

class ImportImages extends Command
{

    protected $signature = 'import:images';

    public function handle(): int
    {
        $verbose = !empty($this->option('verbose'));
        $ftp = Storage::disk('ftp');
        $files = $ftp->files();
        $files = array_filter($files, fn($file) => preg_match('/[0-9+]+\.png/', $file));
        $count = count($files);
        $this->info('Найдено файлов: ' . $count);

        if ($verbose) {
            $progressBar = $this->output->createProgressBar($count);
            $progressBar->start();
        }
        foreach ($files as $file) {
            if ($verbose) {
                $progressBar->advance();
            }
            if (!file_exists(public_path('demo-images'))) {
                mkdir(public_path('demo-images'));
            }
            $localFilePath = public_path('demo-images/') . $file;

            // Для быстрого синка можно включить
            // if (file_exists($localFilePath)) {
            //     if (filesize($localFilePath) == $ftp->size($file)) {
            //     }
            //     continue;
            // }

            file_put_contents($localFilePath, $ftp->get($file));
        }
        if ($verbose) {
            $progressBar->finish();
            $this->line('');
        }

        return CommandAlias::SUCCESS;
    }

}