微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel 8,为公共文件夹中的所有图像创建 zip 文件面对文件错误:ZipArchive::addFile(): 无效或未初始化的 Zip 对象

如何解决Laravel 8,为公共文件夹中的所有图像创建 zip 文件面对文件错误:ZipArchive::addFile(): 无效或未初始化的 Zip 对象

我正在尝试压缩公共“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));
   }
}

解决方法

我认为你错过了传递参数

改变这个:

if ($zipper->open(public_path($filename),ZipArchive::CREATE === TRUE))

到:

  if ($zip->open(public_path($fileName),ZipArchive::CREATE) === TRUE)

再试一次

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。