使用PCLZip或ZipArchive压缩文件时出现意外的存档结束

时间:2015-03-23 18:50:36

标签: php zip ziparchive pclzip

目前想知道是否有人遇到损坏的zip文件。我目前正在使用以下代码

// Multiple File Downloads

require_once('includes/pclzip.lib.php');

$archive = new PclZip('archive.zip');

$v_list = $archive->create('robots.txt,index.php');

if ($v_list == 0) {
  die("Error : ".$archive->errorInfo(true));
}

$file_url = 'archive.zip';

header('Content-Type: application/zip');

header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); 

readfile($file_url);

要创建一个zip存档并强制下载zip,最终会通过点击按钮启动,但现在我只是想创建一个实际可用的存档。

无论我是否使用内置ZipArchive类或使用PclZip库,我都会遇到此问题。

有一件事很奇怪,当我通过FileZilla下载时,在服务器 上创建和放置的拉链正常 但如果我强行下载文件,所有投注都会被取消。我已尝试过多个浏览器,每个浏览器的结果都相同。

真烦人我承认这是我第一次尝试实现这种功能,所以也许我错过了一些东西。我已经看到了类似问题的几个主题,但不幸的是,这些解决方案对我不起作用。我们非常感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:3)

如果它在服务器上运行并且仅在下载时损坏 - 很可能 PHP正在回应通知?警告?)以及ZIP内容,因此它已被破坏何时下载。尝试使用文本编辑器打开下载的ZIP ,并在开头或结尾检查一些PHP输出。在linux上它将是:

cat downloaded.zip | tail
cat downloaded.zip | head