【问题标题】:Laravel 8, creating zip file for all the images in public folder. Facing file error : ZipArchive::addFile(): Invalid or uninitialized Zip objectLaravel 8,为公共文件夹中的所有图像创建 zip 文件。面对文件错误: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));
   }
}

【问题讨论】:

    标签: laravel zipfile ziparchive php-zip-archive


    【解决方案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)
    猜你喜欢
    • 2020-10-28
    • 2018-06-30
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    相关资源
    最近更新 更多