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

Php 使用PCLZip或ZipArchive压缩文件时意外结束存档,php,zip,ziparchive,pclzip,Php,Zip,Ziparchive,Pclzip,目前正在考虑是否有人经历过压缩文件损坏。我目前正在使用以下代码 // 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->err

目前正在考虑是否有人经历过压缩文件损坏。我目前正在使用以下代码

// 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存档并强制下载,最终只需单击一个按钮即可启动,但现在我只是尝试创建一个实际工作的存档

无论我是使用内置的
ZipArchive
类还是使用
PclZip
库,我都会遇到这个问题

一件非常奇怪的事情是,当我通过FileZilla下载时,创建并放置在服务器上的zip运行良好,但是如果我强制下载文件,所有赌注都会被取消一次。我在多个浏览器中进行了尝试,结果都是一样的


真烦人。我承认这是我第一次尝试实现这种类型的功能,所以我可能遗漏了一些东西。我见过一些关于类似问题的帖子,但不幸的是,这些解决方案对我不起作用。任何可以提供的帮助都将不胜感激。

如果它在服务器上工作,并且只有在下载时才被破坏,那么很可能PHP在与ZIP内容一起回显某些内容(注意?警告?),因此在下载时会被破坏。尝试用文本编辑器打开下载的ZIP文件,并在文件开头或结尾检查一些PHP输出。在linux上,它将是:

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

您没有关闭
zip
文件,您没有保存它。。。另外,检查服务器是否使用GZip压缩发送内容。还有就是不要关闭PHP代码(也就是不要在最后使用
?>
。@jasenmp-进展如何?你解决了你的问题吗?嗨,保罗,我为放弃这条线而道歉。我正赶上最后期限。我只是试着在记事本中打开它,但我没有看到任何与PHP相关的内容。你有任何推荐的windows文本编辑器可以用来显示PHP输出吗?如果我是对的,你应该在任何文本编辑器(甚至记事本)的文件顶部或底部看到它。啊,我明白了。我只是仔细检查了一下,以确保我没有忽略任何东西。目前这不是一个大问题,但我想弄清楚。这会让我烦的。我将继续尽可能经常地修补它,并寻找解决方案。