如何将所有选定的文件添加到一个文件夹中并在php中压缩

Posted

技术标签:

【中文标题】如何将所有选定的文件添加到一个文件夹中并在php中压缩【英文标题】:how to add all selected file in one folder and make it zip in php 【发布时间】:2016-01-17 09:25:45 【问题描述】:

我创建了一个文件夹并将所有文件添加到此文件夹中,当我解压缩文件夹时显示一些错误..这里是错误

这是我的代码..

 $files=$_POST['check_list']; 
 $zipname = 'kmm.zip';
 $zip = new ZipArchive;
 $zip->open('kmm.zip', ZipArchive::CREATE |ZipArchive::OVERWRITE);

 foreach ($files as $file) 
  
     $file="audio/$file";
     $zip->addFile($file);
     $zip->close();
  

 header('Content-Type: application/zip');
 header("Content-Disposition: attachment; filename=kmm.zip");
 header('Content-Length: ' . filesize($zipname));

【问题讨论】:

这篇文章需要更多内容。你是如何压缩文件的?你用的是什么代码?脚本运行时是否遇到任何其他错误? 【参考方案1】:

首先添加更多细节。确保您的文件没有损坏或损坏。几年前,我花了几个小时试图让 zip 方法工作。所以仔细检查一下! 试试这个。

    $zip = new ZipArchive();
foreach ($files as $file) 



    $filename = 'yourzip.zip';
    $thisdir = 'audio/'; //This is directory

    //check if file can be openend
    if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) 
        exit("cannot open <$filename>\n");
    
    //This is where the magic happens
    $zip->addFromString($file .'-'. time(), "Whatever you like to do with your files");
    $zip->addFile($thisdir . $file");


    echo "numfiles: " . $zip->numFiles . "\n";
    echo "status:" . $zip->status . "\n";**strong text**
    $zip->close();
    ?>

在关闭 zip 之前,请确保它完成了 foreach。 测试一下

echo "<pre>",print_r($zip->status),"</pre>";

【讨论】:

以上是关于如何将所有选定的文件添加到一个文件夹中并在php中压缩的主要内容,如果未能解决你的问题,请参考以下文章

将 csv 文件加载到 BIGquery 中并在插入数据时添加日期列

如何让 vbscript 将变量保存到文本文件中并在重新打开程序时调用它们?

如何将共享文件夹发布到AD中并在客户端电脑上搜索访问?

如何使用 Ruby 将数据保存到 JSON 中并在以后使用?

NPM:我们可以将 node_modules 存储到一个公共文件夹中并在 Angular 项目中使用它吗?

DNC读取配置Json文件到类中并在程序使用