当我尝试使用 .zip 下载文件时遇到一些问题
use ZipArchive;
.
.
.
public function donwload(){
$zip = new ZipArchive;
$fileName = 'documents.zip';
if ($zip->open(public_path($fileName), ZipArchive::CREATE) === TRUE) {
foreach ( Documents::all() as $document) {
$zip->addFile( public_path('uploads/documents/'.$document->filename) , $document->filename);
}
$zip->close();
}
return response()->download(public_path($fileName));
}
我遇到了这个错误:
ZipArchive::addFile(): No such file or directory
解决办法就是在
$zip->addFile()
之前加上这个条件
public function donwload(){
$zip = new ZipArchive;
$fileName = 'documents.zip';
if ($zip->open(public_path($fileName), ZipArchive::CREATE) === TRUE) {
foreach ( Documents::all() as $document) {
if( file_exists(public_path("uploads/documents/".$document->filename)) ){
$zip->addFile( public_path('uploads/documents/'.$document->filename) , $document->filename);
}
}
$zip->close();
}
return response()->download(public_path($fileName));
}
当目录中不存在一个文件时会发生此错误。