如何将文件从本地磁盘添加到laravel中的zip存档



我想将本地磁盘中的文件添加到zip存档中。请注意,我的文件位于存储本地磁盘,而不是公共磁盘。

$filesAddress=Answer::where('questionid',$questionId)
->pluck('answer')
->all();
$zip = new ZipArchive;
foreach ($filesAddress as $fileAddress){
if($fileAddress!==''){
$relativeName=explode('/',$fileAddress)[3];
$file=Storage::disk('local')->get($fileAddress);
$zip->addFile($file,$relativeName);}
}
$zip->close();
$headers = array('Content-Type'=>'application/octet-stream',);
$zip_name =time()."_$questionId".".zip"; // Zip name
return response()->download($zip_name,$headers);

我发现了如何在laravel中的本地磁盘存储中添加文件。

$filesAddress=Answer::where('questionid',$questionId)
->pluck('answer')
->all();
$zip = new ZipArchive;
$zip_name =time()."_$questionId".".zip"; // Zip name
if ($zip->open(public_path($zip_name), ZipArchive::CREATE)|ZipArchive::OVERWRITE){
foreach ($filesAddress as $file) {
$relativeNameInZipFile = explode('/',$file)[3];
$zip->addFile(Storage::path($file), $relativeNameInZipFile);
}
$zip->close();
return response()->download(public_path($zip_name));

最新更新