当我尝试使用。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));
}
当一个文件在目录中不存在时,会发生此错误。