Я установил пакет phpoffice / phpword на laravel для экспорта нескольких файлов, используя foreach l oop внутри моего контроллера (см. Код ниже). Каждый файл назван в соответствии с соответствующим номером, например. 15_en.do c, 16_en.do c et c, и все файлы автоматически сохраняются в папке laravel \ storage .
//Controller excerpt
foreach($regs as $i)
{
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$phpWord->setDefaultFontName('Ariel');
//code
//saving results:
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
try
{
$objWriter->save(storage_path(''.$i->id.'_en.docx'));
continue;
}
catch (Exception $e)
{
}
return response()->download(storage_path(''.$i->id.'_en.docx'));
}
Теперь я хочу иметь все файлы заархивированы. По этой причине я установил пакет zanysoft / laravel -zip . Я отредактировал мой код, как показано ниже. Это создает zip-файл в папке laravel publi c, , включая вложенные папки проекта по умолчанию . Как я могу их исключить? И, во-вторых, когда проект будет запущен, как пользователи смогут загрузить файл .zip?
Спасибо !!
//Controller excerpt
foreach($regs as $i) //
{
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$phpWord->setDefaultFontName('Ariel');
//code
...
//code
//saving results:
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
try
{
$objWriter->save(storage_path(''.$i->id.'_en.docx'));
continue;
}
catch (Exception $e)
{
}
return response()->download(storage_path(''.$i->id.'_en.docx'));
} //@forech ends here
$zip = Zip::create('your_zipfile.zip'); // this creates zip file name
$zip->add('c:\xampp\htdocs\laravel\storage'); //this zips files exported and the rest of subfolders!