Laravel 8,为公共文件夹中的所有图像创建 zip 文件。面对文件错误:ZipArchive::addFile(): Invalid or uninitialized Zip object
Posted
技术标签:
【中文标题】Laravel 8,为公共文件夹中的所有图像创建 zip 文件。面对文件错误:ZipArchive::addFile(): Invalid or uninitialized Zip object【英文标题】:Laravel 8, creating zip file for all the images in public folder. Facing file error : ZipArchive::addFile(): Invalid or uninitialized Zip object 【发布时间】:2021-01-11 12:27:54 【问题描述】:我正在尝试压缩我的公共“img”文件夹中的所有文件,但我不断收到此错误。 我检查了很多关于堆栈溢出的帖子,代码似乎没问题。我想我在这里遗漏了一些东西。有人可以帮忙吗?
错误异常 ZipArchive::addFile(): 无效或未初始化的 Zip 对象
Laravel 版本:8.11.2
use Illuminate\Http\Request;
use ZipArchive;
use File;
class DownloadController extends Controller
public function zipFile()
$zipper = new ZipArchive();
$filename = 'newzip.zip';
if ($zipper->open(public_path($filename), ZipArchive::CREATE === TRUE))
$files = File::files(public_path('img'));
foreach($files as $key => $val)
$relativeNameInZipFile = basename($val);
$zipper->addFile($val, $relativeNameInZipFile);
$zipper->close();
return response()->download( public_path($filename));
【问题讨论】:
【参考方案1】:我认为你错过了传递参数
改变这个:
if ($zipper->open(public_path($filename), ZipArchive::CREATE === TRUE))
到:
if ($zip->open(public_path($fileName), ZipArchive::CREATE) === TRUE)
再试一次
【讨论】:
嗨,我有这个用户 $zipper = new ZipArchive();所以 $zip 不会工作 所以把它改成 $zipper :|你在这里: if ($zipper->open(public_path($fileName), ZipArchive::CREATE) === TRUE)以上是关于Laravel 8,为公共文件夹中的所有图像创建 zip 文件。面对文件错误:ZipArchive::addFile(): Invalid or uninitialized Zip object的主要内容,如果未能解决你的问题,请参考以下文章
在Laravel 5中,如何获取公用文件夹中所有文件的列表?
在 laravel 中更新时如何删除公共/文件夹中的多个图像?