РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
776 of 1392 menu

Метод copy

Метод copy класса Storage предназначен для копирования существующего файла из одного каталога в другой в рамках выбранного диска. Первым параметром передаётся путь к исходному файлу, вторым - путь к целевому файлу. Метод возвращает булево значение - true в случае успеха и false при ошибке.

Важно отметить, что при копировании файл сначала считывается с исходного пути, а затем записывается в новое место. Если целевой файл уже существует, он будет перезаписан. Метод работает со всеми дисками, поддерживаемыми Laravel: local, public, s3 и другими.

Синтаксис

<?php Storage::copy($from, $to); ?>

Пример

Давайте скопируем файл 'file.txt' из корня диска local в каталог 'backup' с новым именем 'file_backup.txt':

<?php use Illuminate\Support\Facades\Storage; $from = 'file.txt'; $to = 'backup/file_backup.txt'; $res = Storage::copy($from, $to); echo $res ? 'File copied successfully' : 'Failed to copy file'; ?>

Результат выполнения кода:

"File copied successfully"

Пример

Скопируем файл из публичного диска в локальный с проверкой существования исходного файла:

<?php use Illuminate\Support\Facades\Storage; $from = 'photos/image.jpg'; $to = 'archive/image.jpg'; if (Storage::disk('public')->exists($from)) { $res = Storage::disk('public')->copy($from, $to); echo $res ? 'Copy completed' : 'Copy failed'; } else { echo 'Source file not found'; } ?>

Результат выполнения кода:

"Copy completed"

Пример

Копирование файла с сохранением оригинального имени в другой каталог с использованием динамического пути:

<?php use Illuminate\Support\Facades\Storage; $filename = 'document.pdf'; $sourcePath = 'uploads/' . $filename; $targetPath = 'archive/' . date('Y/m/d') . '/' . $filename; $res = Storage::disk('local')->copy($sourcePath, $targetPath); if ($res) { echo 'File copied to: ' . $targetPath; } else { echo 'Failed to copy file'; } ?>

Результат выполнения кода:

"File copied to: archive/2026/09/07/document.pdf"

Пример

Копирование нескольких файлов из одного каталога в другой с проверкой результата:

<?php use Illuminate\Support\Facades\Storage; $files = ['file1.txt', 'file2.txt', 'file3.txt']; $sourceDir = 'documents/'; $targetDir = 'backup/documents/'; $successCount = 0; foreach ($files as $file) { $from = $sourceDir . $file; $to = $targetDir . $file; if (Storage::disk('local')->exists($from)) { if (Storage::disk('local')->copy($from, $to)) { $successCount++; } } } echo 'Copied ' . $successCount . ' of ' . count($files) . ' files'; ?>

Результат выполнения кода:

"Copied 3 of 3 files"

Смотрите также

  • метод move,
    который перемещает файл в новое местоположение
  • метод exists,
    который проверяет существование файла
  • метод delete,
    который удаляет файл из файловой системы
  • метод put,
    который создаёт или перезаписывает файл
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить