@DocTypeMaster

Как заполнить архив выборкой из массива в laravel?

Помогите решить проблемку, есть на ларавел форма в которой я передаю файлы, мне нужно эти файлы записать в архив и сохранить его в папке public

сейчас имею такой код
public function Upload (Request $request) {
// Тут я сохраняю файлы в папку но эти файлы мне нужно сразу записать в архив и сохранить уже его в папку
     $arrf = $request->file('file');
      foreach ($arrf as $file) {
        $file->store('test/image');
      }


  $zip = new \ZipArchive();
  $filename = "t.zip";

  if ($zip->open($filename, \ZipArchive::CREATE)!==TRUE) {
      exit("Невозможно открыть <$filename>\n");
  }
// я так понимаю тут нужно сделать цикл для записи всех файлов, но я пока не понимаю как оно должно работать , вернее как обращаться к имени файла который я записываю
  $zip->addFile("test\image\invoices.png", "index.png");

  $zip->close();
      return response()->download($zip);
    }
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 1
no4ch
@no4ch
Веб-разработчик
1)Для перебора файлов в определенной директории используй:
https://www.php.net/manual/ru/function.glob.php
2)Чтобы не указывать расширение файлов используй:
https://www.php.net/manual/ru/function.scandir.php
Но здесь есть нюанс, нужно отсеять директории:
https://www.php.net/manual/ru/function.is-dir.php

И в цикле foreach собственно добавляй файлы, а после (не в курсе за Zip библиотеку) выполни действия согласно документации (закрой архив или же сохрани).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы